mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.4 KiB
82 lines
2.4 KiB
ARG PYTHON_VERSION="3.8.13-slim-bullseye"
|
|
ARG NODE_VERSION="16.16-bullseye-slim"
|
|
FROM node:${NODE_VERSION} AS frontend-builder
|
|
|
|
COPY frontend/ /frontend/
|
|
WORKDIR /frontend
|
|
ENV PUBLIC_PATH="/static/_nuxt/"
|
|
# hadolint ignore=DL3008
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends git python3 make g++ ca-certificates \
|
|
&& git config --global url."https://github.com/".insteadOf git://github.com/ \
|
|
&& yarn install --network-timeout 1000000 \
|
|
&& yarn build \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM python:${PYTHON_VERSION} AS backend-builder
|
|
|
|
# hadolint ignore=DL3008
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
netcat=1.* \
|
|
libpq-dev=13.* \
|
|
unixodbc-dev=2.* \
|
|
g++=4:* \
|
|
libssl-dev=1.* \
|
|
curl \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /tmp
|
|
COPY backend/pyproject.toml backend/poetry.lock /tmp/
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
RUN pip install -U --no-cache-dir pip==22.2.2 \
|
|
&& curl -sSL https://install.python-poetry.org | python - \
|
|
&& export PATH="/root/.local/bin:$PATH" \
|
|
&& poetry export --without-hashes -o /requirements.txt \
|
|
&& echo "psycopg2-binary==2.8.6" >> /requirements.txt \
|
|
&& echo "django-heroku==0.3.1" >> /requirements.txt \
|
|
&& pip install --no-cache-dir -r /requirements.txt
|
|
|
|
FROM python:${PYTHON_VERSION} AS runtime
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
libpq-dev=13.* \
|
|
unixodbc-dev=2.* \
|
|
libssl-dev=1.* \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN useradd -ms /bin/sh doccano
|
|
RUN mkdir /data \
|
|
&& chown doccano:doccano /data
|
|
|
|
COPY --from=backend-builder /usr/local/lib/python3.8/site-packages /usr/local/lib/python3.8/site-packages
|
|
COPY --from=backend-builder /usr/local/bin/celery /usr/local/bin/celery
|
|
COPY --from=backend-builder /usr/local/bin/gunicorn /usr/local/bin/gunicorn
|
|
|
|
COPY --chown=doccano:doccano . /doccano
|
|
WORKDIR /doccano/backend
|
|
COPY --from=frontend-builder /frontend/dist /doccano/backend/client/dist
|
|
RUN python manage.py collectstatic --noinput \
|
|
&& chown -R doccano:doccano .
|
|
|
|
VOLUME /data
|
|
ENV DATABASE_URL="sqlite:////data/doccano.db"
|
|
|
|
ENV DEBUG="False"
|
|
ENV STANDALONE="True"
|
|
ENV SECRET_KEY="change-me-in-production"
|
|
ENV PORT="8000"
|
|
ENV WORKERS="2"
|
|
ENV CELERY_WORKERS="2"
|
|
ENV GOOGLE_TRACKING_ID=""
|
|
ENV DJANGO_SETTINGS_MODULE="config.settings.production"
|
|
|
|
USER doccano
|
|
EXPOSE ${PORT}
|
|
|
|
CMD ["/doccano/tools/run.sh"]
|