FROM dunglas/frankenphp:latest-php8.3 # Dépendances système RUN apt-get update && apt-get install -y \ libpq-dev \ libzip-dev \ unzip \ git \ gdal-bin \ python3-gdal \ && rm -rf /var/lib/apt/lists/* # Extensions PHP RUN install-php-extensions \ pdo_pgsql \ pgsql \ redis \ zip \ intl \ opcache \ apcu # Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer WORKDIR /app # Dépendances en premier (cache Docker layer) COPY backend/composer.json backend/composer.lock ./ RUN composer install --no-dev --optimize-autoloader --no-scripts # Code source COPY backend/ . # 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"]