From 5ad0b1f13b6c6472e3e36942deda2d72883dff2e Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Sat, 16 Nov 2019 20:06:50 +0100 Subject: [PATCH] [Docker] Place all data under one volume. Eases deployment, especially on hosters that charge per volume. --- Dockerfile | 14 ++++++-------- docker/entrypoint.sh | 8 ++++---- docker/nginx/Dockerfile | 2 +- docker/nginx/nginx.conf | 4 ++-- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index d8ae20629..231af405a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,8 +8,9 @@ ENV PIP_DISABLE_PIP_VERSION_CHECK 1 ENV PIP_NO_CACHE_DIR 1 # Configure app settings for build and runtime -ENV BISCUIT_static__root /srv/static -ENV BISCUIT_media__root /srv/media +ENV BISCUIT_static__root /var/lib/biscuit/static +ENV BISCUIT_media__root /var/lib/biscuit/media +ENV BISCUIT_backup__location /var/lib/biscuit/backups # FIXME Use poetry pre-release for external build ENV POETRY_VERSION 1.0.0b3 @@ -36,7 +37,7 @@ RUN pip install "poetry==$POETRY_VERSION"; \ # Install core COPY biscuit ./biscuit/ COPY LICENSE README.md manage.py ./ -RUN mkdir /etc/biscuit /srv/media /srv/static /var/backups/biscuit; \ +RUN mkdir -p /var/lib/biscuit/media /var/lib/biscuit/static /var/lib/biscuit/backups; \ poetry build && pip install dist/*.whl # Build messages and assets @@ -54,11 +55,8 @@ RUN apt-get remove --purge -y \ apt-get clean -y; \ rm -f /var/lib/apt/lists/*_* -# Mark configuration as mountableg from the host -VOLUME /etc/biscuit -VOLUME /srv/media -VOLUME /srv/static -VOLUME /var/backups/biscuit +# Declare a persistent volume for all data +VOLUME /var/lib/biscuit # Define entrypoint and gunicorn running on port 8000 EXPOSE 8000 diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 0c0de294f..4dcf89fce 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -6,11 +6,11 @@ export BISCUIT_database__host=${BISCUIT_database__host:-127.0.0.1} export BISCUIT_database__port=${BISCUIT_database__port:-5432} if [[ -z $BISCUIT_secret_key ]]; then - if [[ ! -e /etc/biscuit/secret_key ]]; then - touch /etc/biscuit/secret_key; chmod 600 /etc/biscuit/secret_key - LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 64 >/etc/biscuit/secret_key + if [[ ! -e /var/lib/biscuit/secret_key ]]; then + touch /var/lib/biscuit/secret_key; chmod 600 /var/lib/biscuit/secret_key + LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 64 >/var/lib/biscuit/secret_key fi - BISCUIT_secret_key=$(</etc/biscuit/secret_key) + BISCUIT_secret_key=$(</var/lib/biscuit/secret_key) fi while ! nc -z $BISCUIT_database__host $BISCUIT_database__port; do diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile index a44009fab..9645e8f00 100644 --- a/docker/nginx/Dockerfile +++ b/docker/nginx/Dockerfile @@ -6,4 +6,4 @@ COPY nginx.conf /etc/nginx/conf.d RUN apt-get update && apt-get upgrade -y RUN apt-get install -y libjs-bootstrap4 fonts-font-awesome libjs-jquery libjs-popper.js libjs-jquery-datatables -RUN mkdir /srv/media /srv/static +RUN mkdir /var/lib/biscuit diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf index 1dd3bf2a1..41f0bc39e 100644 --- a/docker/nginx/nginx.conf +++ b/docker/nginx/nginx.conf @@ -13,11 +13,11 @@ server { } location /media/ { - alias /srv/media/; + alias /var/lib/biscuit/media/; } location /static/ { - alias /srv/static/; + alias /var/lib/biscuit/static/; } location /javascript/ { -- GitLab