# ============================================================ # Image Apache + PHP pour Symfony # Le code source est copié dans l'image au moment du build # ============================================================ FROM php:8.3-apache # ── Dépendances système ────────────────────────────────────── RUN apt-get update && apt-get install -y \ libicu-dev \ libzip-dev \ libpq-dev \ unzip \ git \ && docker-php-ext-install \ intl \ pdo \ pdo_pgsql \ zip \ opcache \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # ── Modules Apache ─────────────────────────────────────────── RUN a2enmod rewrite headers # ── Composer ──────────────────────────────────────────────── COPY --from=composer:2 /usr/bin/composer /usr/bin/composer # ── Code source Symfony ────────────────────────────────────── WORKDIR /var/www/html # On copie d'abord composer.json pour profiter du cache Docker COPY app/composer.json app/composer.lock ./ RUN composer install --no-dev --optimize-autoloader --no-scripts --no-interaction # Puis le reste du code COPY app/ . # ── Droits ────────────────────────────────────────────────── RUN chown -R www-data:www-data /var/www/html \ && chmod -R 755 /var/www/html/var # ── Config Apache ──────────────────────────────────────────── COPY docker/apache/symfony.conf /etc/apache2/sites-enabled/000-default.conf EXPOSE 80