Josselin Dionisi - Développeur indépendant

Les débuts avec Docker

ionicons-v5-k Josselin Dionisi 7 déc. 2020
1310 lectures Niveau : intermédiaire

Ah Docker ! J’en ai entendu parler pendant des années, mais comme beaucoup (j’ai l’impression) je n’avais toujours pas sauté le pas.

J’avais lu plusieurs articles sur cette techno, j’avais même regardé la doc officielle pour essayer de bidouiller quelques trucs, mais ça restait encore trop flou pour moi.

Bon déjà, Docker, qu’est-ce que c’est ? C’est (presque) de la magie dans le sens où vous n’avez plus besoin de vous soucier ni de votre configuration serveur, ni de votre OS, ni de votre version de PHP, Node, React … bref. Vous vous contentez de coder sur votre machine et miraculeusement si ça fonctionne ça fonctionnera aussi en production sans se poser de question.

Si vous voulez en savoir plus quand même voici un lien :

Orientation and setup | Docker Documentation

Alors c’est déjà génial, mais ce qui l’est encore plus c’est que Docker fonctionne avec un système d’images. C’est-à-dire que pour installer votre environnement en production vous allez devoir utiliser une image (un peu comme les images ISO si vous voulez). Et cette image, soit vous la récupérez directement sur Docker Hub (dans le cas où vous n’avez rien besoin de particulier par rapport à une configuration standard), soit vous la configurez vous-même.

Et l’avantage à ça c’est qu’une fois faite, cette image vous pouvez la réutiliser pour chacun de vos projets… 😃. Sans oublier qu’il existe déjà des images toutes prêtes pour Wordpress, Prestashop, etc.

Vous la sentez la magie maintenant non ? 🧙

Mon expérience

Bon évidemment quand j’ai compris tout ça et vu quelques lignes de commandes que je me suis empressé de noter sur « Bear », j’ai eu envie de tester.

Je développe quasiment toujours mes "backend » en Symfony donc c’était mon premier objectif : créer ma propre image Docker qui lance un environnement Symfony

Je suis donc parti d’une image de PHP en version 7.4, additionnée à une image de Nginx et MySQL pour avoir un environnement LAMP complet sous Docker.

J’ai un peu cherché comment écrire ça de la meilleure manière sans oublier les extensions de PHP indispensables à toutes les dépendances et en une demi-journée mes Dockerfile étaient opérationnels et fonctionnaient avec docker-compose qui lance les containers.

Il me suffit de taper la commande Symfony qui crée un nouveau projet

Et c’est parti mon environnement de développement est prêt il n’y a plus qu’à créer mon nouveau projet tout en ayant « Composer » accessible ainsi qu’une base de données Mysql liée. 😁

Si vous voulez utiliser cette configuration je l’ai mise à disposition sur Github : GitHub - boreales/sf4-docker: Symfony LTS + Nginx + Mysql