From 16afdf50574f68e2001c5b54a1c493479e4ceb2d Mon Sep 17 00:00:00 2001 From: paul-garster Date: Thu, 9 Oct 2025 15:29:52 +0100 Subject: [PATCH 1/3] deployment: Add shared-data volume --- deployment/docker-compose.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/deployment/docker-compose.yml b/deployment/docker-compose.yml index e09875a..92bdb98 100644 --- a/deployment/docker-compose.yml +++ b/deployment/docker-compose.yml @@ -33,11 +33,14 @@ services: MYW_DB_USERNAME: ${DB_USERNAME:-iqgeo} MYW_DB_PASSWORD: ${DB_PASSWORD:-password} SQLALCHEMY_URL: postgresql://${DB_USERNAME:-iqgeo}:${DB_PASSWORD:-password}@${DB_HOST:-postgis}:5432/${MYW_DB_NAME:-myproj} + SHARED_DIRECTORY: /shared-data RQ_REDIS_URL: ${REDIS_URL:-redis://:password@redis:6379/1} MYW_TASK_WORKERS: ${MYW_TASK_WORKERS:-1} MYW_TASK_QUEUES: ${MYW_TASK_QUEUES:-} # START CUSTOM SECTION # END CUSTOM SECTION + volumes: + - shared-data:/shared-data iqgeo: build: @@ -67,6 +70,7 @@ services: MYW_DB_PASSWORD: ${DB_PASSWORD:-password} BEAKER_SESSION_TYPE: ${BEAKER_SESSION_TYPE:-ext:redis} BEAKER_SESSION_URL: ${BEAKER_SESSION_URL:-redis://:password@redis:6379/0} + SHARED_DIRECTORY: /shared-data RQ_REDIS_URL: ${REDIS_URL:-redis://:password@redis:6379/1} IQGEO_HOST: ${IQGEO_HOST:-localhost} KEYCLOAK_URL: ${KC_PROTOCOL:-http://}${KEYCLOAK_HOST:-keycloak.local}:${KEYCLOAK_PORT:-8080} @@ -76,6 +80,8 @@ services: # END CUSTOM SECTION ports: - ${APPSERVER_PORT:-80}:8080 + volumes: + - shared-data:/shared-data keycloak: container_name: keycloak_${PROJ_PREFIX:-myproj} @@ -112,3 +118,7 @@ volumes: name: ${PROJ_PREFIX:-myproj}_pgdata-example15 # START CUSTOM SECTION # END CUSTOM SECTION + shared-data: + name: ${PROJ_PREFIX:-myproj}_shared-data + # START CUSTOM SECTION + # END CUSTOM SECTION From c551b3382134d17d3abc6b68b1ac8b082d76e026 Mon Sep 17 00:00:00 2001 From: Sam Frances Date: Thu, 23 Oct 2025 15:51:19 +0100 Subject: [PATCH 2/3] deployment: ensure www-data has permissions to write to shared directory --- deployment/dockerfile.appserver | 5 +++++ deployment/dockerfile.tools | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/deployment/dockerfile.appserver b/deployment/dockerfile.appserver index ae300cc..fc2a4c7 100644 --- a/deployment/dockerfile.appserver +++ b/deployment/dockerfile.appserver @@ -37,6 +37,11 @@ COPY --chown=www-data:www-data --from=iqgeo_builder ${MODULES}/comms/ ${MODULES} # Copy in generated bundles COPY --chown=www-data:www-data --from=iqgeo_builder ${WEBAPPS}/myworldapp/public ${WEBAPPS}/myworldapp/public/ +# Give www-data user ownership of the shared directory +ENV SHARED_DIRECTORY=/shared-data +RUN mkdir -p ${SHARED_DIRECTORY} +RUN chown -R www-data:www-data ${SHARED_DIRECTORY} + USER www-data diff --git a/deployment/dockerfile.tools b/deployment/dockerfile.tools index bc77ef2..fa30ca5 100644 --- a/deployment/dockerfile.tools +++ b/deployment/dockerfile.tools @@ -28,6 +28,11 @@ COPY --chown=www-data:www-data --from=iqgeo_builder ${WEBAPPS}/myworldapp/dist $ RUN chown -R www-data:www-data entrypoint.d && \ chown www-data:www-data entrypoint.d.sh +# Give www-data user ownership of the shared directory +ENV SHARED_DIRECTORY=/shared-data +RUN mkdir -p ${SHARED_DIRECTORY} +RUN chown -R www-data:www-data ${SHARED_DIRECTORY} + USER www-data # add additional entrypoint scripts (build db, ...) From 8004cee0dc0072bb61149d4fa8907644fd850cb4 Mon Sep 17 00:00:00 2001 From: Sam Frances Date: Thu, 23 Oct 2025 16:19:59 +0100 Subject: [PATCH 3/3] deployment: remove unnecessary SHARED_DIRECTORY env from docker compose file --- deployment/docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/deployment/docker-compose.yml b/deployment/docker-compose.yml index 92bdb98..2e40c9b 100644 --- a/deployment/docker-compose.yml +++ b/deployment/docker-compose.yml @@ -33,7 +33,6 @@ services: MYW_DB_USERNAME: ${DB_USERNAME:-iqgeo} MYW_DB_PASSWORD: ${DB_PASSWORD:-password} SQLALCHEMY_URL: postgresql://${DB_USERNAME:-iqgeo}:${DB_PASSWORD:-password}@${DB_HOST:-postgis}:5432/${MYW_DB_NAME:-myproj} - SHARED_DIRECTORY: /shared-data RQ_REDIS_URL: ${REDIS_URL:-redis://:password@redis:6379/1} MYW_TASK_WORKERS: ${MYW_TASK_WORKERS:-1} MYW_TASK_QUEUES: ${MYW_TASK_QUEUES:-} @@ -70,7 +69,6 @@ services: MYW_DB_PASSWORD: ${DB_PASSWORD:-password} BEAKER_SESSION_TYPE: ${BEAKER_SESSION_TYPE:-ext:redis} BEAKER_SESSION_URL: ${BEAKER_SESSION_URL:-redis://:password@redis:6379/0} - SHARED_DIRECTORY: /shared-data RQ_REDIS_URL: ${REDIS_URL:-redis://:password@redis:6379/1} IQGEO_HOST: ${IQGEO_HOST:-localhost} KEYCLOAK_URL: ${KC_PROTOCOL:-http://}${KEYCLOAK_HOST:-keycloak.local}:${KEYCLOAK_PORT:-8080}