Dockeriser une application Laravel n'est pas aussi simple qu'il y paraît, c'est pourquoi aujourd'hui je vais vous guider à travers le processus de création d'une image Docker pour Laravel 11 en 2024.
Pour ce faire, nous configurerons un environnement complet à l'aide de Docker Compose, garantissant que notre application Laravel est prête à être déployée dans n'importe quel environnement.
Pour commencer, assurez-vous de créer les fichiers suivants dans votre projet :
Ces fichiers contiennent la configuration nécessaire pour créer l'image Docker et gérer les conteneurs.
En utilisant le
déployerl'annuaire est une convention personnelle ; vous pouvez choisir le nom que vous préférez. Cependant, assurez-vous que les configurations présentées ci-dessous correspondent au chemin où vous avez enregistré les fichiers.
LeFichier Dockerdéfinit l'environnement de développement de notre application Laravel. Dans ce cas, nous la diviserons en deux étapes : une pour construire l’application et une autre pour l’exécuter en production (pas nécessairement) comme suit :
# déployer/Dockerfile # étape 1 : étape de construction DEPUIS php:8.3-fpm-alpine en tant que build # installation des dépendances système et des extensions php RUN apk add --no-cache \ zip \ libzip-dev \ freetype \ libjpeg-turbo \ libpng \ freetype-dev \ libjpeg-turbo-dev \ libpng-dev \ nodejs \ npm \ && docker-php-ext-configure zip \ && docker-php-ext-install zip pdo pdo_mysql \ && docker-php-ext-configure gd - -with-freetype=/usr/include/ --with-jpeg=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-enable gd # installer le compositeur COPY --from=composer:2.7.6 /usr/bin/composer /usr/bin/composer WORKDIR /var/www/html # copier les fichiers nécessaires et modifier les autorisations COPY . . RUN chown -R www-data:www-data /var/www/html \ && chmod -R 775 /var/www/html/storage \ && chmod -R 775 /var/www/html/bootstrap/cache # installer php et dépendances node.js RUN composer install --no-dev --prefer-dist \ && npm install \ && npm run build RUN chown -R www-data:www-data /var/www/html/vendor \ && chmod - R 775 /var...
[Courte citation de 8% de l'article original]