34 lines
860 B
Docker
34 lines
860 B
Docker
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/supervisord.conf /etc/supervisord.conf
|
|
|
|
# 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
|
|
|
|
CMD ["/app/start.sh"]
|