Mettre à jour un service ou sa configuration

Note:

Ces explications ne valent que pour un service qui est déjà en production et que l’on souhaite mettre à jour.

On peut vouloir mettre à jour : * Le service (e.g. changer un numéro de version dans le Dockerfile), * La configuration (éditer un fichier quelconque), * La configuration des volumes (e.g. changer le point de montage du Docker Compose), * etc.

Dans tous les cas, les modifications apportées à n’importe quel fichier de ce dépôt doivent être poussées sur ce dépôt. Vous pouvez effectuer les modifications sur votre machine ou sur une machine de Picasoft, du moment qu’elles sont synchronisées avec le dépôt.

Il est pertinent de créer une branche avant chaque mise à jour où vous n’êtes pas sûr des modifications, et ne de fusionner dans master que lorsque les tests ont été effectués.

On appelle configuration tout ce qui ne nécessite pas de reconstruire une image : * Modification du docker-compose.yml (environnement, point de montage, tag d’une image officielle…) * Modification d’un fichier de configuration * Modification d’une page web d’accueil * etc.

Il suffit de mettre à jour les fichiers souhaitées, éventuellement de signaler les changements à l’équipe ou en commentaire, puis de synchroniser avec le dépôt.

Si vous mettez à jour le tag d’une image officielle (e.g postgres:10postgres:12), lisez au préalable la documentation de mise à jour ! Certaines nécessitent des interventions manuelles, et le README du service le précise en général.

Toute image indiquée dans le fichier Compose doit avoir un tag (e.g postgres:12 et pas postgres). N’utilisez jamais un tag vide (équivalent à latest).

Apportez vos modifications au Dockerfile (ajout d’un paquet…). Vous pouvez travailler en local et tester l’image sur votre machine si vous voulez.

Si le code du service à copier dans l’image est intégré au dépôt par un submodule, on lancera la commande suivante pour le mettre à jour à la dernière version. Voir la documentation des submodules pour utiliser un tag ou une branche spécifique.

git submodule update --recursive --remote <dossier du service>

Synchronisez ensuite le tout avec le dépôt (git commit, git push...).

  • technique/docker/picasoft/update.1602091920.txt.gz
  • de qduchemi