# ----------------------------- # Étape 1 : build (composer) # ----------------------------- FROM laravelsail/php84-composer AS build WORKDIR /var/www/html # On copie tout le projet (y compris artisan) COPY . . # Installation des dépendances PHP en mode production RUN apt-get update && apt-get install -y libicu-dev \ && docker-php-ext-configure intl \ && docker-php-ext-install intl RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader # ----------------------------- # Étape 2 : image runtime # ----------------------------- FROM laravelsail/php84-composer WORKDIR /var/www/html # 👉 Installation du driver MySQL pour PDO RUN docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \ && docker-php-ext-install pdo_mysql \ && docker-php-ext-enable pdo_mysql \ && php -m | grep -i pdo_mysql # 👉 Installation de l'extension intl RUN apt-get update && apt-get install -y libicu-dev \ && docker-php-ext-configure intl \ && docker-php-ext-install intl # On récupère tout ce qui a été préparé dans l’étape build COPY --from=build /var/www/html /var/www/html # Création du symlink storage RUN php artisan storage:link # On désactive l'ENTRYPOINT par défaut de l'image de base ENTRYPOINT [] # On expose le port HTTP du serveur Laravel EXPOSE 80 # Commande de démarrage : serveur Laravel CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=80"]