9b63dc8809
- frontend/Dockerfile.prod : Next.js standalone (294 Mo), régénère les assets DSFR, injecte NEXT_PUBLIC_API_URL au build (npm ci --ignore-scripts pour le postinstall) - backend/Dockerfile.prod + docker/entrypoint.sh : API Laravel, migrations + seed idempotent + serveur, génération de secrets en fallback - docker-compose.prod.yml : Postgres + API + Front pour déploiement Coolify - next.config.ts : output standalone ; .dockerignore back/front - DEPLOIEMENT_COOLIFY.md : guide + variables d'environnement Images de prod testées (build + smoke-test DSFR OK). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
32 lines
927 B
Docker
32 lines
927 B
Docker
# Image de production de l'API Laravel (CESIZen).
|
|
FROM php:8.4-cli
|
|
|
|
# Extensions PHP nécessaires (PostgreSQL, bcmath, redis)
|
|
RUN apt-get update && apt-get install -y \
|
|
libpq-dev \
|
|
unzip \
|
|
git \
|
|
&& docker-php-ext-install pdo pdo_pgsql bcmath \
|
|
&& pecl install redis && docker-php-ext-enable redis \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
|
|
|
WORKDIR /app
|
|
|
|
# Dépendances PHP de production uniquement (cache Docker)
|
|
COPY composer.json composer.lock ./
|
|
RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist --no-interaction
|
|
|
|
# Code source
|
|
COPY . .
|
|
RUN composer dump-autoload --optimize --no-dev
|
|
|
|
# Script de démarrage (migrations + seed idempotent + serveur)
|
|
COPY docker/entrypoint.sh /usr/local/bin/entrypoint
|
|
RUN chmod +x /usr/local/bin/entrypoint \
|
|
&& chmod -R ug+rw storage bootstrap/cache
|
|
|
|
EXPOSE 8000
|
|
CMD ["entrypoint"]
|