Comment ancrer une application PHP

J’essaie de comprendre le processus général de déploiement d’une application Web PHP via Docker. J’ai une application web développée dans LAMP.

Jusqu’à présent, j’ai compris que tout ce que je devais télécharger et installer Docker lui-même. Ensuite, je dois installer Docker Composer. Ensuite, en utilisant le composeur, je dois créer un conteneur qui contiendra l’image de mon serveur (Apache).

Et c’est là que je suis confus. Dois-je créer un conteneur pour ma firebase database et un autre pour l’application elle-même (le répertoire contenant le code) ou est-ce que j’ai un conteneur pour le serveur, la firebase database et l’application?

Je n’ai pas besoin d’une explication détaillée, juste l’idée générale derrière le processus alors je peux comprendre le rest tout seul

Merci à tous ceux qui peuvent vous aider.

Selon les meilleures pratiques, il devrait y avoir un conteneur Docker par processus / service (un conteneur pour Apache + PHP, un autre conteneur pour MySQL, etc.), mais ce n’est qu’un guide et cela ne signifie pas que vous ne pouvez pas avoir un seul conteneur besoin à l’intérieur.

Si vous décidez d’utiliser un seul conteneur pour exécuter tous les services, vous pourrez utiliser Docker (Engine). Vous pouvez toujours utiliser Docker Compose dans ce cas, mais il n’y a aucun besoin réel.

Docker Compose est plus utile lors de l’exécution de plusieurs conteneurs. Avec une seule commande, vous pouvez lancer tous vos conteneurs. Ici aussi, vous ne pouvez utiliser que Docker Engine, mais vous devrez exécuter chaque conteneur manuellement.

Il peut exister de nombreuses manières, mais le moyen le plus simple est d’installer docker sur certaines machines Linux, d’écrire un fichier docker qui installe et configure tous les composants nécessaires tels qu’apache , php, mysql, etc. attachez-le en tant que volume externe à partir de l’hôte.

Après avoir écrit dockerfile , vous pouvez créer l’image docker à l’aide de la commande docker build et, une fois l’image créée, vous pouvez l’utiliser localement ou la transférer vers dockerhub ou l’envoyer à votre registre privé si vous le souhaitez.

L’autre option est que si vous voulez juste tester, vous pouvez extraire une image déjà existante de dockerhub qui contient la stack LAMP et il vous suffit alors d’exécuter Docker sur l’image en attachant votre application php en tant que volume externe .

Bien sûr, pour accéder à l’application sur le port 80 ou 443 en dehors de docker, vous devez exposer ces ports soit dans le fichier docker, soit à l’heure de la commande d’exécution du docker.

Pour un environnement de test, vous pouvez exécuter tous les services dans un seul conteneur.

Pour les déploiements plus importants, vous pouvez envisager un service d’orchestration de conteneur tel que DockerSwarm ou Kubernetes . Vous pouvez également essayer DC / OS à partir de MesoSphere , en saisissant un fichier vagrant de votre repository github qui va configurer le DC / OS sur une seule machine pour vous. Ensuite, vous pouvez simplement lancer autant de services que vous voulez sur Mesos . Ils fournissent une prise en charge immédiate de l’installation des services, de la gestion des conteneurs et de la mise à l’échelle.