From f89de16f6e953d5d868f4f1515b828848fb5301d Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Mon, 20 Feb 2023 15:39:14 +0100 Subject: [PATCH] Improve docker build - add .dockerignore - add entrypoint.sh to ensure proper permissions in Docker volumes - add TZ variable for consistent Celery timestamps --- .dockerignore | 18 ++++++++++++++++++ Dockerfile | 14 ++++++-------- docker-compose.yml | 17 +++++++++-------- docker/django_media/.empty | 0 docker/django_static/.empty | 0 entrypoint.sh | 7 +++++++ gva.sh | 5 +++-- 7 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 .dockerignore delete mode 100644 docker/django_media/.empty delete mode 100644 docker/django_static/.empty create mode 100755 entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..652558d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,18 @@ +**/*.pyc +**/.*.swp +**/.coverage +**/__pycache__ +.dockerignore +.env +.envrc +.git +.gitignore +.idea +.isort.cfg +.vagrant +Dockerfile +Vagrantfile +docker-compose.yml +docs +media +static diff --git a/Dockerfile b/Dockerfile index 1cd97eb..93b979c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,22 +51,20 @@ ARG GVAAPP=gva ARG GVAGID=2000 ARG GVAUID=2000 -VOLUME /srv/$GVAAPP/media /srv/$GVAAPP/static - -WORKDIR /srv/$GVAAPP - RUN addgroup --gid $GVAGID $GVAAPP ; \ adduser --home /home/$GVAAPP --shell /bin/bash --uid $GVAUID --gid $GVAGID --disabled-password \ --gecos "User for gnuviechadmin component $GVAAPP" $GVAAPP COPY --chown=$GVAAPP:$GVAAPP --from=builder /srv/$GVAAPP/.venv /srv/$GVAAPP/.venv -USER $GVAAPP +WORKDIR /srv/$GVAAPP -VOLUME /srv/$GVAAPP +VOLUME /srv/$GVAAPP/media /srv/$GVAAPP/static + +VOLUME /srv/$GVAAPP/gnuviechadmin EXPOSE 8000 -COPY ${GVAAPP}.sh /srv/ +COPY ${GVAAPP}.sh entrypoint.sh /srv/ -ENTRYPOINT ["dumb-init", "/srv/${GVAAPP}.sh"] +ENTRYPOINT ["dumb-init", "/srv/entrypoint.sh"] diff --git a/docker-compose.yml b/docker-compose.yml index dd174b0..4e611c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,4 @@ +--- version: "3" services: db: @@ -36,9 +37,9 @@ services: GVA_DOMAIN_NAME: localhost GVA_SITE_NAME: localhost volumes: - - "./docker/django_media:/srv/gva/media" - - "./docker/django_static:/srv/gva/static" - - ".:/srv/gva" + - "django_media:/srv/gva/media" + - "django_static:/srv/gva/static" + - "./gnuviechadmin:/srv/gva/gnuviechadmin" web: image: gnuviech/gvaweb:buster build: @@ -51,7 +52,7 @@ services: - redis env_file: ../gvaweb/.env volumes: - - "../gvaweb:/srv/gvaweb" + - "../gvaweb/gvaweb:/srv/gvaweb/gvaweb" ldap: image: gnuviech/gvaldap:buster build: @@ -64,7 +65,7 @@ services: - redis env_file: ../gvaldap/.env volumes: - - "../gvaldap:/srv/gvaldap" + - "../gvaldap/gvaldap:/srv/gvaldap/gvaldap" file: image: gnuviech/gvafile:buster build: @@ -77,7 +78,7 @@ services: - redis env_file: ../gvafile/.env volumes: - - "../gvafile:/srv/gvafile" + - "../gvafile/gvafile:/srv/gvafile/gvafile" pgsql: image: gnuviech/gvapgsql:buster build: @@ -90,7 +91,7 @@ services: - redis env_file: ../gvapgsql/.env volumes: - - "../gvapgsql:/srv/gvapgsql" + - "../gvapgsql/gvapgsql:/srv/gvapgsql/gvapgsql" mysql: image: gnuviech/gvamysql:buster build: @@ -103,7 +104,7 @@ services: - redis env_file: ../gvamysql/.env volumes: - - "../gvamysql:/srv/gvamysql" + - "../gvamysql/gvamysql:/srv/gvamysql/gvamysql" volumes: django_media: django_static: diff --git a/docker/django_media/.empty b/docker/django_media/.empty deleted file mode 100644 index e69de29..0000000 diff --git a/docker/django_static/.empty b/docker/django_static/.empty deleted file mode 100644 index e69de29..0000000 diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..b8e2187 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +chown -Rc gva.gva /srv/gva/media /srv/gva/static + +su -c /srv/gva.sh gva diff --git a/gva.sh b/gva.sh index 2314974..f8c0ce4 100755 --- a/gva.sh +++ b/gva.sh @@ -14,11 +14,12 @@ do sleep 1 done -echo " db is ready" +echo ". db is ready" + +export TZ="Europe/Berlin" . /srv/gva/.venv/bin/activate cd /srv/gva/gnuviechadmin -python3 manage.py compilemessages python3 manage.py collectstatic --noinput python3 manage.py migrate --noinput python3 manage.py runserver 0.0.0.0:8000