diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..eae7123 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,43 @@ +FROM python:3.9-slim-buster + +ENV PYTHONFAULTHANDLER=1 \ + PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PYTHONHASHSEED=random \ + PIP_NO_CACHE_DIR=off \ + PIP_DISABLE_PIP_VERSION_CHECK=on \ + PIP_DEFAULT_TIMEOUT=100 \ + POETRY_VERSION=1.1.4 + +RUN apt-get update \ + && apt-get install -y \ + binutils \ + libpq-dev \ + build-essential \ + netcat-openbsd \ + libcairo2 \ + libpango-1.0-0 \ + libpangocairo-1.0-0 \ + libgdk-pixbuf2.0-0 \ + libffi-dev \ + shared-mime-info \ + && pip install "poetry==$POETRY_VERSION" + +WORKDIR /app + +COPY poetry.lock pyproject.toml /app/ + +ARG DJANGO_ENV + +RUN poetry export -f requirements.txt $(test "$DJANGO_ENV" != production && echo "--dev") | pip install -r /dev/stdin + +RUN groupadd -g 1000 www +RUN useradd -u 1000 -ms /bin/bash -g www www +COPY --chown=www:www ./ /app/ +RUN mkdir /app/static && chown www:www /app/static + +ARG BUILD +ENV BUILD ${BUILD} + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["uvicorn", "config.asgi:application", "--host", "0.0.0.0", "--port", "8080", "--workers", "3", "--lifespan", "off"]