backend/compose/local/django/Dockerfile

68 lines
1.7 KiB
Docker
Raw Normal View History

2023-08-26 01:17:47 +03:00
ARG PYTHON_VERSION=3.11-slim
# define an alias for the specfic python version used in this file.
FROM python:${PYTHON_VERSION} as python
# Python 'run' stage
FROM python as python-run-stage
ARG BUILD_ENVIRONMENT=local
ARG APP_HOME=/app
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV BUILD_ENV ${BUILD_ENVIRONMENT}
2023-08-26 09:59:56 +03:00
ENV POETRY_VERSION 1.4.2
2023-08-26 01:17:47 +03:00
WORKDIR ${APP_HOME}
# Install required system dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \
# psycopg2 dependencies
2023-08-26 09:59:56 +03:00
libpq-dev build-essential \
2023-08-26 01:17:47 +03:00
# Translations dependencies
gettext \
# cleaning up unused files
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/*
2023-08-26 09:59:56 +03:00
RUN pip install "poetry==$POETRY_VERSION"
RUN python -m venv /venv
2023-08-26 01:17:47 +03:00
2023-08-26 09:59:56 +03:00
COPY pyproject.toml poetry.lock /app/
RUN poetry export -f requirements.txt | /venv/bin/pip install -r /dev/stdin
2023-08-26 01:17:47 +03:00
2023-08-26 09:59:56 +03:00
COPY . .
RUN poetry build && /venv/bin/pip install dist/*.whl
2023-08-26 01:17:47 +03:00
COPY ./compose/production/django/entrypoint /entrypoint
RUN sed -i 's/\r$//g' /entrypoint
RUN chmod +x /entrypoint
COPY ./compose/production/django/manage /manage
RUN sed -i 's/\r$//g' /manage
RUN chmod +x /manage
COPY ./compose/local/django/start /start
RUN sed -i 's/\r$//g' /start
RUN chmod +x /start
COPY ./compose/local/django/celery/worker/start /start-celeryworker
RUN sed -i 's/\r$//g' /start-celeryworker
RUN chmod +x /start-celeryworker
COPY ./compose/local/django/celery/beat/start /start-celerybeat
RUN sed -i 's/\r$//g' /start-celerybeat
RUN chmod +x /start-celerybeat
COPY ./compose/local/django/celery/flower/start /start-flower
RUN sed -i 's/\r$//g' /start-flower
RUN chmod +x /start-flower
2023-08-26 09:59:56 +03:00
2023-08-26 01:17:47 +03:00
# copy application code to WORKDIR
COPY . ${APP_HOME}
ENTRYPOINT ["/entrypoint"]