Select Git revision
Forked from
hub / hub
3626 commits behind the upstream repository.
gd2 authored
Dockerfile 2.27 KiB
FROM python:3.8-buster as monolith
VOLUME /data /media
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV LC_ALL=C.UTF-8
ENV DJANGO_SETTINGS_MODULE=rc3platform.settings.default
ENV DOCKER_UID=1000
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
gettext \
locales \
nginx-light \
sudo \
supervisor && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
dpkg-reconfigure locales && \
locale-gen C.UTF-8 && \
/usr/sbin/update-locale LANG=C.UTF-8 && \
useradd -u $DOCKER_UID -ms /bin/bash -d /app appuser && \
echo 'appuser ALL=(ALL) NOPASSWD:SETENV: /usr/bin/supervisord' >> /etc/sudoers && \
echo 'appuser ALL=(ALL) NOPASSWD: /usr/bin/tail -F /var/log/nginx/error.log' >> /etc/sudoers && \
chown appuser: /media
COPY src/requirements.txt /app/
RUN pip3 install -r /app/requirements.txt gunicorn psycopg2-binary && \
rm -rf ~/.cache/pip
COPY deployment/docker/app.sh /usr/local/bin/app
COPY deployment/docker/supervisord.conf /etc/supervisord.conf
COPY deployment/docker/nginx.conf /etc/nginx/nginx.conf
COPY deployment/docker/check_django.sh /usr/local/bin/check_django
COPY src /app/
RUN ln -s /data/local_settings.py /app/rc3platform/local_settings.py && \
ln -s /media /app/media && \
export DJANGO_SECRET_KEY=unused-but-must-be-present && \
python3 /app/manage.py collectstatic --noinput && \
python3 /app/manage.py compilemessages && \
unset DJANGO_SECRET_KEY && \
chmod +x /usr/local/bin/app && \
chown -R appuser: /app /data
# temporary debug
RUN echo 'appuser ALL=(ALL) NOPASSWD:SETENV: /bin/bash' >> /etc/sudoers
USER appuser
EXPOSE 80
HEALTHCHECK --interval=5s --timeout=3s --start-period=30s --retries=3 \
CMD ["/bin/bash", "/usr/local/bin/check_django", "rc3.world"]
ENTRYPOINT ["/usr/local/bin/app"]
CMD ["all"]
FROM docker.io/bitnami/minideb as base
ENV DOCKER_UID=1000
RUN useradd -u $DOCKER_UID -ms /bin/bash -d /app appuser
VOLUME /data /media
FROM base as nginx
EXPOSE 80 443
STOPSIGNAL SIGQUIT
RUN install_packages nginx-light
RUN chown -R appuser:appuser /var/lib/nginx /var/log/nginx
COPY --from=monolith /app/static.dist /app/static.dist
CMD ["nginx", "-c", "/data/nginx.conf"]
FROM monolith as default_image