Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
technique:docker:picasoft:dockerfiles [2020/09/30 16:46] qduchemitechnique:docker:picasoft:dockerfiles [2021/12/19 19:41] qduchemi
Ligne 1: Ligne 1:
 {{indexmenu_n>10}} {{indexmenu_n>10}}
-# Comprendre la gestion des services de Picasoft+ 
 +<bootnote important>Page obsolète, à mettre à jour.</bootnote> 
 +# Comprendre la gestion des services 
 + 
 +<bootnote warning> 
 +Prérequis : les articles de [[technique:docker:general:start|cette section]]. 
 +</bootnote>
  
 ## Préambule ## Préambule
Ligne 9: Ligne 15:
 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).
  
-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.+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>
  
-Traditionnellement, il est cloné dans le répertoire `/DATA/docker/dockerfiles` sur les machines virtuelles.+<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 :
Ligne 22: Ligne 28:
 * 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 :
Ligne 43: Ligne 51:
  
 Le dépôt est organisé en dossiers. Chaque dossier correspond à un *service* Picasoft au sens large, c'est-à-dire à un ensemble de conteneurs liés entre eux *techniquement* (*e.g.* Mattermost et sa base de données) et/ou *sémantiquement* (*e.g.* sites web statiques, relai et boîte à mail). Le dépôt est organisé en dossiers. Chaque dossier correspond à un *service* Picasoft au sens large, c'est-à-dire à un ensemble de conteneurs liés entre eux *techniquement* (*e.g.* Mattermost et sa base de données) et/ou *sémantiquement* (*e.g.* sites web statiques, relai et boîte à mail).
 +
 +<bootnote>Chaque service a son propre fichier Compose, lui permettant d'être déployé indépendamment des autres.</bootnote>
  
 Ainsi, chaque dossier du dépôt contient, selon les situations : Ainsi, chaque dossier du dépôt contient, selon les situations :
Ligne 52: Ligne 62:
 * Un `README.md` résumant les paramètres modifiables sur le dépôt, les mécanismes pour en rajouter, etc, * Un `README.md` résumant les paramètres modifiables sur le dépôt, les mécanismes pour en rajouter, etc,
 * Pour les images maison, un `CHANGELOG.md` résumant les modifications faites au fil des version. * Pour les images maison, un `CHANGELOG.md` résumant les modifications faites au fil des version.
- 
-Chaque service a son propre fichier Compose, lui permettant d'être déployé indépendamment des autres. 
  
 ## Utiliser le dépôt sur les machines ## Utiliser le dépôt sur les machines
  
-Si vous clonez le dépôt sur une nouvelle machine virtuelleil est important de faire quelques opérations.+<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 :
  
-À 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.+``` 
 +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.
  • technique/docker/picasoft/dockerfiles.txt
  • de ppom