From 7ecb71599d8c611a0d4497f0e50a8fa490136258 Mon Sep 17 00:00:00 2001 From: Gwadaking Date: Wed, 1 Apr 2026 17:44:05 -0400 Subject: [PATCH] fix: move cache:warmup to runtime entrypoint, fix POSTGRES_PASSWORD default cache:warmup at build time fails because .env.local is not available in the image (gitignored). Moved to entrypoint.sh which runs after volume mounts. Also added default value for POSTGRES_PASSWORD in docker-compose.yml. Co-Authored-By: Claude Sonnet 4.6 --- docker-compose.yml | 6 +++--- docker/php/Dockerfile | 14 ++++++++++---- docker/php/entrypoint.sh | 8 ++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 docker/php/entrypoint.sh diff --git a/docker-compose.yml b/docker-compose.yml index 0e8857a..779976d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,9 +25,9 @@ services: image: postgis/postgis:16-3.4 restart: unless-stopped environment: - POSTGRES_DB: ${POSTGRES_DB:-sargasses} - POSTGRES_USER: ${POSTGRES_USER:-app} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB:-sargasses_db} + POSTGRES_USER: ${POSTGRES_USER:-rs971_user} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} volumes: - db_data:/var/lib/postgresql/data networks: diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index b96a6e9..02b6c8c 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -25,14 +25,20 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer WORKDIR /app -# Copie des dépendances en premier (cache Docker) +# Dépendances en premier (cache Docker layer) COPY backend/composer.json backend/composer.lock ./ RUN composer install --no-dev --optimize-autoloader --no-scripts -# Copie du reste +# Code source COPY backend/ . -RUN composer dump-autoload --optimize \ - && php bin/console cache:warmup --env=prod +# Autoload uniquement — pas de cache:warmup ici (besoin de .env.local au runtime) +RUN composer dump-autoload --optimize COPY docker/php/Caddyfile /etc/caddy/Caddyfile + +# Entrypoint : warmup au démarrage du conteneur, quand .env.local est monté +COPY docker/php/entrypoint.sh /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh + +ENTRYPOINT ["entrypoint.sh"] diff --git a/docker/php/entrypoint.sh b/docker/php/entrypoint.sh new file mode 100644 index 0000000..9ee5d53 --- /dev/null +++ b/docker/php/entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +# Warmup du cache Symfony au démarrage (les vars d'env sont disponibles ici) +php bin/console cache:warmup --env=prod --no-debug 2>&1 || true + +# Lance FrankenPHP (comportement par défaut de l'image de base) +exec frankenphp run --config /etc/caddy/Caddyfile "$@"