FROM python:3.12-alpine WORKDIR /app # set env ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # install required packages RUN apk add --no-cache postgresql-dev gcc python3-dev musl-dev gettext postgresql-client nginx supervisor # install dependencies ADD ./source/requirements.txt . RUN pip install -r requirements.txt # add supervisor and nginx configs ADD ./docker/nginx.conf /etc/nginx/nginx.conf ADD ./docker/supervisor*.conf /etc/ # add user RUN addgroup -S portier && adduser -S portier -G portier # add code ADD --chown=portier:portier ./source/ /app/ # add static external libraries for frontend RUN ./fetch_frontend_libs.sh \ && chown -R portier:portier static/ # collect static files and compile localized strings RUN ./manage.py collectstatic --noinput --link RUN ./manage.py compilemessages ENV COMPONENT=web CMD ["/app/start.sh"]