You've already forked snikket-web-portal
snikket_web can now be fully configured via the environment alone, no extra files needed. It is still supported to inject a python file to generate environment variables though, which may be useful for generating and reloading a secret key.
53 lines
1.6 KiB
Docker
53 lines
1.6 KiB
Docker
FROM debian:buster
|
|
|
|
ARG BUILD_SERIES=dev
|
|
ARG BUILD_ID=0
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
# This Dockerfile attempts to strike a balance between image size and time it
|
|
# takes to do an incremental build on changes.
|
|
# Improvements welcome.
|
|
|
|
RUN set -eu; \
|
|
apt-get update ; \
|
|
apt-get install -y --no-install-recommends \
|
|
python3 python3-pip python3-setuptools python3-wheel \
|
|
libpython3-dev \
|
|
make build-essential \
|
|
; \
|
|
apt-get clean ; rm -rf /var/lib/apt/lists
|
|
|
|
COPY requirements.txt /opt/snikket-web-portal/requirements.txt
|
|
COPY build-requirements.txt /opt/snikket-web-portal/build-requirements.txt
|
|
|
|
WORKDIR /opt/snikket-web-portal
|
|
|
|
RUN set -eu; \
|
|
pip3 install -r requirements.txt; \
|
|
pip3 install -r build-requirements.txt; \
|
|
rm -rf /root/.cache;
|
|
|
|
COPY Makefile /opt/snikket-web-portal/Makefile
|
|
COPY snikket_web/ /opt/snikket-web-portal/snikket_web
|
|
COPY babel.cfg /opt/snikket-web-portal/babel.cfg
|
|
|
|
# NOTE: abusing true(1) as a terrible way to disable a specific command. If
|
|
# one merged all the RUN commands into one, one would want to run the
|
|
# uninstall/remove commands there, but with the split up RUN commands it is
|
|
# rather pointless.
|
|
RUN set -eu; \
|
|
make; \
|
|
true pip3 uninstall -yr build-requirements.txt; \
|
|
true apt-get remove -y build-essential make libpython3-dev; \
|
|
true apt-get autoremove -y; \
|
|
pip3 install hypercorn; \
|
|
rm -rf /root/.cache; \
|
|
apt-get clean ; rm -rf /var/lib/apt/lists
|
|
|
|
COPY docker/env.py /etc/snikket-web-portal/env.py
|
|
ENV SNIKKET_WEB_PYENV=/etc/snikket-web-portal/env.py
|
|
|
|
ADD docker/entrypoint.sh /entrypoint.sh
|
|
ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]
|