Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes |
technique:docker:picasoft:dockerfiles [2020/10/13 18:57] – qduchemi | technique:docker:picasoft:dockerfiles [2021/12/19 19:41] – qduchemi |
---|
{{indexmenu_n>10}} | {{indexmenu_n>10}} |
| |
| <bootnote important>Page obsolète, à mettre à jour.</bootnote> |
# Comprendre la gestion des services | # Comprendre la gestion des services |
| |
| <bootnote warning> |
| Prérequis : les articles de [[technique:docker:general:start|cette section]]. |
| </bootnote> |
| |
## Préambule | ## Préambule |
Pour le reste, qui pourrait être lancé sur une machine virtuelle quelconque, on privilégiera Docker (qui a justement l'avantage de construire des images qui peuvent être lancées de n'importe où, sans configuration spécifique adaptée au système d'exploitation). | Pour le reste, qui pourrait être lancé sur une machine virtuelle quelconque, on privilégiera Docker (qui a justement l'avantage de construire des images qui peuvent être lancées de n'importe où, sans configuration spécifique adaptée au système d'exploitation). |
| |
<bootnote>Pour gérer les conteneurs Docker, nous utilisons [Docker Compose](https://docs.docker.com/compose/). | <bootnote>Pour gérer les conteneurs Docker, nous utilisons [[technique:tech_team:pres_docker|Docker Compose]]. |
Les fichiers permettant de construire les images, de créer les conteneurs et de configurer les services sont centralisés sur un dépôt Git, appelé `dockerfiles`. C'est la seule ressource nécessaire pour lancer n'importe quel service Picasoft, et est accessible ici : https://gitlab.utc.fr/picasoft/projets/dockerfiles.</bootnote> | Les fichiers permettant de construire les images, de créer les conteneurs et de configurer les services sont centralisés sur un dépôt Git, appelé `dockerfiles`. C'est la seule ressource nécessaire pour lancer n'importe quel service Picasoft, et est accessible ici : https://gitlab.utc.fr/picasoft/projets/dockerfiles.</bootnote> |
| |
<bootnote>Traditionnellement, il est cloné dans le répertoire `/DATA/docker/dockerfiles` sur les machines virtuelles.</bootnote> | <bootnote>Traditionnellement, il est cloné dans le répertoire `/DATA/docker/dockerfiles` sur les machines virtuelles.</bootnote> |
| |
## Philosophie | ## Objectifs |
| |
Historiquement, Picasoft procède de la manière suivante : | Historiquement, Picasoft procède de la manière suivante : |
* Gérer un fichier Compose global par machine virtuelle, qui contient la configuration et les secrets. | * Gérer un fichier Compose global par machine virtuelle, qui contient la configuration et les secrets. |
| |
Cette approche pose plusieurs problèmes. Comment savoir ce qu'il y a dans une image, si on perd le Dockerfile ? Quel Dockerfile correspond à quelle version de l'image ? Si on perd l'accès à la machine, comment récupérer la configuration, remonter rapidement le service ? Comment versionner les changements de configuration ? Revenir à la version d'il y a deux semaines ? | Cette approche pose plusieurs problèmes. |
| |
| <bootnote question>Comment savoir ce qu'il y a dans une image, si on perd le Dockerfile ? Quel Dockerfile correspond à quelle version de l'image ? Si on perd l'accès à la machine, comment récupérer la configuration, remonter rapidement le service ? Comment versionner les changements de configuration ? Revenir à la version d'il y a deux semaines ?</bootnote> |
| |
L'objectif de ce dépôt est de rendre possible le déploiement de n'importe quel service Picasoft avec la procédure suivante : | L'objectif de ce dépôt est de rendre possible le déploiement de n'importe quel service Picasoft avec la procédure suivante : |
| |
<bootnote warning>Cette section ne concerne que les nouvelles machines virtuelles où le dépôt n'est pas déjà cloné. À moins qu'on ouvre une nouvelle machine, ça ne devrait pas arriver - le dépôt existe déjà dans `/DATA/docker/dockerfiles` sur toutes les machines actuelles.</bootnote> | <bootnote warning>Cette section ne concerne que les nouvelles machines virtuelles où le dépôt n'est pas déjà cloné. À moins qu'on ouvre une nouvelle machine, ça ne devrait pas arriver - le dépôt existe déjà dans `/DATA/docker/dockerfiles` sur toutes les machines actuelles.</bootnote> |
| |
| On commence par cloner le dépôt : |
| |
| ``` |
| mkdir /DATA/docker |
| cd /DATA/docker |
| git clone https://gitlab.utc.fr/picasoft/projets/dockerfiles |
| ``` |
| |
En effet, le dépôt sera partagé et les fichiers doivent être éditables par tous les membres de Picasoft. | En effet, le dépôt sera partagé et les fichiers doivent être éditables par tous les membres de Picasoft. |