Skip to content
Snippets Groups Projects
Select Git revision
  • 564d135017d7c4be4239ff1887f23c4e980be114
  • develop default protected
  • ical-export
  • feature/audit_log
  • fix/index
  • badge-redeem-404
  • 720-schedule_source
  • room-docu
  • chore/event-views
  • 511-schedule-foo-fixed
  • 607-schedule-versions
  • deploy/curl-verbose
  • fix/public-badge-access-rights
  • 445-schedule-redirects
  • 623-wiki-im-baustellenmodus-sollte-mal-als-wiki-admin-trotzdem-seiten-anlegen-bearbeiten-konnen
  • fix/registration_mail_subject
  • feature/conference-query-set
  • feature/568-habitatmanagement
  • feat/unit-integration-tests
  • camp23-prod
  • production
  • prod-2024-12-27_20-15
  • prod-2024-12-27_16-37
  • prod-2024-12-27_16-01
  • prod-2024-12-27_13-29
  • prod-2024-12-27_00-34
  • prod-2024-12-26_21-45
  • prod-2024-12-26_13-12
  • prod-2024-12-26_00-21
  • prod-2024-12-25_21-04
  • prod-2024-12-25_15-54
  • prod-2024-12-25_01-29
  • prod-2024-12-24_14-48
  • prod-2024-12-23_23-39
  • prod-2024-12-22_21-12
  • prod-2024-12-22_17-25
  • prod-2024-12-22_01-34
  • prod-2024-12-22_00-55
  • prod-2024-12-21_13-42
  • prod-2024-12-21_10-44
  • prod-2024-12-20_12-25
41 results

Dockerfile

Blame
  • Forked from hub / hub
    3626 commits behind the upstream repository.
    Gigadoc2's avatar
    01929c55
    History
    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