Aller au contenu principal

Initialisation

Nous allons utiliser l'outil Compose maintenant intégré à Docker nativement.
Vous n'avez rien de plus à installer.
Seulement de vous placer dans le dossier racine du projet et lancer les commandes suivantes :

docker compose -f compose.nginxfpm.yml build
Bon à savoir

En se basant sur les informations fournies dans les fichiers compose.yml, compose.nginxfpm.yml et .docker/php-fpm/Dockerfile.
Cette commande va construire vos containers sans les allumer réellement.
Elle va les câbler entre eux si besoin, installer des librairies, changer de la configuration etc..


docker compose -f compose.nginxfpm.yml up -d
Bon à savoir

Cette commande va mettre en service vos containers.
Apres cela vos containers seront accessibles depuis votre machine hôte.

Les opérations précédentes peuvent prendre quelques minutes la première fois que vous les lancerez. Et c'est bien normal !
Avec ce qui est écrit dans notre compose.yml et compose.nginxfpm.yml , Docker va devoir télécharger 3 images :

Image Docker (image:tag)Commentaire
nginx:latestUn serveur web, le point d'entrée de notre application, il transmet une requête à PHP via FastCGI puis renvoit le résultat au client
php:8.2-fpm-alpineUn langage de script, il communiquera avec Nginx via FastCGI, c'est lui qui lit les fichiers du projet et passe ensuite le résultat au serveur
postgres:12-alpineUne base de donnée, pour la persistance de l'information et la redélivre à la demande, dans notre cas Doctrine sera la passerelle entre PHP et PostgreSQL
Info

Le tag alpine désigne une distribution Linux très légère
Très utile ici pour réduire le poids de nos images et containers

ça tourne

Au fait c'est bon, l'application est déjà accessible sur votre localhost:80.

Merci Docker, vous avez maintenant ce qu'il faut pour faire tourner l'application.
Enfin presque, il reste une chose que la documentation ne peut pas fournir.
Des données pour remplir votre Base de données PostgreSQL.

Pratique

Les deux commandes Makefile suivantes vous serviront respectivement de lancer et d'arrêter vos conteneurs Docker :

make docker-start
make docker-stop