Besoin d'un LAMP, WAMP ou MAMP pour un petit projet ?
Vous n'avez pas envie de vous prendre la tête à installer toute la stack sur votre machine ?
Vous voulez que cette stack soit lancée en une commande ? C'est possible !
Pour un petit projet PHP, je ne voulais pas installer toute la stack Apache, PHP, MySQL, ni lancer Vagrant.
Je me suis dis qu'en utilisant Docker ça devait être possible.
Et surtout, quelqu'un y a surement pensé avant moi et c'est disponible.
Pour ceux qui ne sont pas à l'aise avec les termes LAMP, WAMP, MAMP ou même XAMPP c'est pas compliqué !
La première lettre représente le système d'exploitation :
Le reste des lettres signifient :
Grosso modo, c'est la stack de base pour installer un site web PHP.
L'idée c'est d'utiliser Docker pour conteneuriser tout ces outils et pas avoir à les installer.
Tu nous parle de faire ça sans installation, mais il faut quand même Docker ?
He bien oui. Il faut bien partir de quelque part 😉 !
Du coup j'utilise le projet de mattrayner
sur Docker Hub.
Avec une seule commande il est possible de lancer un projet PHP simple.
Si vous avez besoin de modifier le VHost, ça demande plus de configuration.
Mais autant partir sur un fichier docker-compose traditionnel !
Placez vous dans votre répertoire de projet et lancez la commande :
$ docker run -p "80:80" -v ${PWD}:/app mattrayner/lamp:latest-1804
Rendez-vous dans votre navigateur et entrez l'IP Docker (dépend de votre configuration).
Et voilà !
Pour information, le latest-1804
à la fin de la commande est la version LTS d'Ubuntu à utiliser.
Les trois principales valeurs sont :
# Version 18.04
docker run -p "80:80" -v ${PWD}:/app mattrayner/lamp:latest-1804
# Version 16.04
docker run -p "80:80" -v ${PWD}:/app mattrayner/lamp:latest-1604
# Version 14.04
docker run -p "80:80" -v ${PWD}:/app mattrayner/lamp:latest-1404
Le gros avantage, c'est que si vous avez Docker de déjà installé, ça va très vite !
Et en prime PHPMyAdmin est déjà installé accessible sur /phpmyadmin
Si vous voulez aller plus loin avec cette image, il est possible de passer par un Dockerfile.
Vous pouvez par exemple installer Redis, modifier les configurations Apache PHP ou MySQL, etc...
Voici un exemple de base :
FROM mattrayner/lamp:latest-1804
# Vos propres commandes ici
CMD ["/run.sh"]
J'ai pas eu besoin de créer le Dockerfile, donc je vous laisse tester. Si jamais je dois passer par là je mettrais l'article à jour.
Vous pouvez également poster en commentaire vos propres Dockerfile.
Pour plus d'informations, je vous invite à aller voir le Docker Hub de l'image.