Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
technique:tech_team:pres_compose [2021/11/15 23:19] – qduchemi | technique:tech_team:pres_compose [2021/11/16 00:42] (Version actuelle) – qduchemi | ||
---|---|---|---|
Ligne 78: | Ligne 78: | ||
Note comment la barre du bas change au fil des commandes (`I` puis `:wq`). | Note comment la barre du bas change au fil des commandes (`I` puis `:wq`). | ||
+ | |||
+ | On est maintenant équipé pour écrire des fichiers Compose sur les machines ! ^_^ | ||
+ | |||
+ | ### Ton premier fichier Compose | ||
+ | |||
+ | On va ré-écrire la première commande de cette page, mais à l'aide d'un fichier Compose. | ||
+ | |||
+ | La première étape, c'est de déclarer la « version » du fichier de configuration. Actuellement, | ||
+ | |||
+ | ```yaml | ||
+ | version: " | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | Note les guillemets pour indiquer une chaîne de caractère. Des fois, les guillemets sont optionnels, mais sur la version Compose râle s'ils n'y sont pas. | ||
+ | </ | ||
+ | |||
+ | Regardons la suite : | ||
+ | |||
+ | ```yaml | ||
+ | version: " | ||
+ | |||
+ | services: | ||
+ | quentin: | ||
+ | image: nginx: | ||
+ | container_name: | ||
+ | ports: | ||
+ | - 8001:80 | ||
+ | volumes: | ||
+ | - ./ | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | |||
+ | On commence par déclarer un ensemble de **services**. Dans la terminologie Compose, un service = un conteneur. Ici, il n'y en a qu'un, c'est notre serveur web. On le **nomme** `quentin` juste en dessous de la directive `services`. | ||
+ | |||
+ | < | ||
+ | |||
+ | Ensuite, les autres directives devraient te parler d' | ||
+ | |||
+ | ### Gérer les volumes avec Compose | ||
+ | |||
+ | Si tu te rappelles, on avait [[technique: | ||
+ | |||
+ | Voici comment on ferait avec Compose : | ||
+ | |||
+ | ```yaml | ||
+ | volumes: | ||
+ | quentin_data: | ||
+ | name: quentin_data | ||
+ | | ||
+ | services: | ||
+ | quentin: | ||
+ | [...] | ||
+ | volumes: | ||
+ | - quentin_data:/ | ||
+ | ``` | ||
+ | |||
+ | Ici, pas besoin de faire de `docker volume create`, Compose s' | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | ### Et comment on lance tout ça ? | ||
+ | |||
+ | Une fois que le fichier est édité, une commande ~~pour les gouverner tous~~ pour tout lancer : | ||
+ | |||
+ | ``` | ||
+ | # -d pour détacher, lancer en arrière plan | ||
+ | docker-compose up -d | ||
+ | ``` | ||
+ | |||
+ | Pour vérifier que tout s'est bien passé, on peut consulter les journaux. S'il n'y a aucun message, c'est plutôt bon signe. | ||
+ | |||
+ | ``` | ||
+ | docker-compose logs | ||
+ | ``` | ||
+ | |||
+ | On peut ensuite vérifier que tout s'est bien lancé : | ||
+ | |||
+ | ``` | ||
+ | curl pica01-test.picasoft.net: | ||
+ | ``` | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | < | ||
+ | |||
+ | Compose a créé le volume `quentin_data` et l'a monté sur `/ | ||
+ | |||
+ | Maintenant, on voudrait bien mettre notre page d' | ||
+ | |||
+ | ``` | ||
+ | vim index.html | ||
+ | docker cp index.html quentin:/ | ||
+ | ``` | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | Il suffit d' | ||
+ | |||
+ | ```bash | ||
+ | # Exécute la commande bash dans le conteneur quentin | ||
+ | docker-compose exec quentin bash | ||
+ | ``` | ||
+ | |||
+ | Et de faire sa vie ! | ||
+ | |||
+ | Voyons que ce ça donne en action : copier un fichier dans le volume, le supprimer, voir que ça ne change rien, puis modifier le fichier dans le conteneur. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | On constate en même temps que dans le conteneur il n'y a aucun éditeur. C'est parce que dans l' | ||
+ | |||
+ | ### D' | ||
+ | |||
+ | < | ||
+ | |||
+ | Pour le reste, on ne liste pas tout sur le wiki, mais on peut retrouver l' | ||
+ | |||
+ | ### Compléments | ||
+ | |||
+ | < | ||
+ | |||
+ | ### Et maintenant ? | ||
+ | |||
+ | On est déjà pas mal, on a un moyen de créer des conteneurs de façon stable, à partir d'un fichier de configuration. Mais il manque encore quelque chose... vous ne trouvez pas que `pica01-test.picasoft.net: | ||
+ | |||
+ | Est-ce-qu' | ||
+ | |||
+ | < | ||
+ | |||
+ | Mais on a vu que le port 80 ne pouvait être écouté que par un seul service. Alors, si on a plusieurs URLs `team.picasoft.net`, | ||
+ | |||
+ | Et bien c'est là qu' |