diff --git a/innungsapp/apps/admin/docker-entrypoint.sh b/innungsapp/apps/admin/docker-entrypoint.sh index 1acb68b..de96956 100755 --- a/innungsapp/apps/admin/docker-entrypoint.sh +++ b/innungsapp/apps/admin/docker-entrypoint.sh @@ -19,9 +19,22 @@ else fi echo "NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-[not set]}" echo "NODE_ENV: ${NODE_ENV:-[not set]}" +echo "UPLOAD_DIR: ${UPLOAD_DIR:-/app/uploads}" echo "========================================" echo "" +UPLOAD_DIR="${UPLOAD_DIR:-/app/uploads}" +if ! mkdir -p "$UPLOAD_DIR"; then + echo "ERROR: Could not create upload directory: $UPLOAD_DIR" + exit 1 +fi + +if ! [ -w "$UPLOAD_DIR" ]; then + echo "ERROR: Upload directory is not writable by uid $(id -u):gid $(id -g): $UPLOAD_DIR" + echo "Use the docker-compose uploads_data volume or fix ownership on the mounted directory." + exit 1 +fi + run_with_retries() { attempt=1 max_attempts=20 diff --git a/innungsapp/docker-compose.yml b/innungsapp/docker-compose.yml index 927dd7b..4cae830 100644 --- a/innungsapp/docker-compose.yml +++ b/innungsapp/docker-compose.yml @@ -67,9 +67,9 @@ services: pids_limit: 512 ulimits: nproc: 65535 - volumes: - # Uploaded files — persists across restarts - - ./uploads:/app/uploads + volumes: + # Uploaded files - persisted in a Docker-managed volume so ownership stays writable for the nextjs user. + - uploads_data:/app/uploads networks: - innungsapp # <-- NEU healthcheck: @@ -79,9 +79,10 @@ services: retries: 3 start_period: 40s -volumes: - pg_data: - -networks: +volumes: + pg_data: + uploads_data: + +networks: innungsapp: - external: true \ No newline at end of file + external: true