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évisionLes deux révisions suivantes
technique:docker:picasoft:new [2022/04/29 15:45] – ↷ Liens modifiés en raison d'un déplacement. qduchemitechnique:docker:picasoft:new [2022/05/24 20:32] ppom
Ligne 8: Ligne 8:
 ## Préambule ## Préambule
  
-Cette page donne quelques pistes pour lancer un nouveau service, versionné sur le dépôt `dockerfiles` (voir [[technique:docker:picasoft:dockerfiles|gestion des services]]).+Cette page donne quelques pistes pour lancer un nouveau service, versionné sur un nouveau dépôt à créer dans `services` (voir [[technique:docker:picasoft:dockerfiles|gestion des services]]).
  
-L'idée de ce dépôt est de rendre nos services **indépendants** des machines virtuelles sur lesquels ils sont lancés, c'est-à-dire qu'à partir de ce dépôt, on devrait pouvoir remonter sans aucun problème un service sur une machine quelconque (sauf les données, bien sûr).+L'idée de chaque dépôt est de rendre son service **indépendant** des machines virtuelles sur lesquelles il est lancé, c'est-à-dire qu'à partir de ce dépôt, on devrait pouvoir remonter sans aucun problème un service sur une machine quelconque (sauf les données, bien sûr).
  
 Le dossier [template](https://gitlab.utc.fr/picasoft/projets/dockerfiles/-/tree/master/template) est une bonne base pour commencer un nouveau service. Le dossier [template](https://gitlab.utc.fr/picasoft/projets/dockerfiles/-/tree/master/template) est une bonne base pour commencer un nouveau service.
  
-<bootnote warning>Si on utilise pas d'image maison, il n'est pas nécessaire d'utiliser un `Dockerfile`.</bootnote>+<bootnote warning>Si on n'utilise pas d'image maison, il n'est pas nécessaire d'utiliser un `Dockerfile`.</bootnote>
  
 <bootnote tip>Pour le contenu des fichiers `Dockerfile` et `docker-compose.yml`, on se référera au [[technique:docker:general:tips|guide des bonnes pratiques pour les Dockerfile]] et au [[technique:docker:good_practices:start|guide des bonnes pratiques pour Compose]] en cas de doute.</bootnote> <bootnote tip>Pour le contenu des fichiers `Dockerfile` et `docker-compose.yml`, on se référera au [[technique:docker:general:tips|guide des bonnes pratiques pour les Dockerfile]] et au [[technique:docker:good_practices:start|guide des bonnes pratiques pour Compose]] en cas de doute.</bootnote>
Ligne 20: Ligne 20:
 Pour savoir si vous avez versionné tout les fichiers nécessaires et automatisé le démarrage du service, posez-vous la question suivante : Pour savoir si vous avez versionné tout les fichiers nécessaires et automatisé le démarrage du service, posez-vous la question suivante :
  
-<bootnote question>Si je fais un `git pull` sur n'importe quelle machine puis un `docker-compose up -d`, est-ce-que mon service démarre correctement ?</bootnote>+<bootnote question>Si je fais un `git clone` sur n'importe quelle machine, `cd` puis un `docker-compose up -d`, est-ce-que mon service démarre correctement ?</bootnote>
  
 Si non, voici quelques pistes. Si non, voici quelques pistes.
Ligne 50: Ligne 50:
 Il y a deux solutions : Il y a deux solutions :
    * Soit on part de l'image officielle, avec un `FROM`, et on travaille dessus en rajoutant des fichiers, en enlevant des paquets... Cette solution a l'inconvénient de multiplier les *layers* inutiles, et d'augmenter la taille de l'image.    * Soit on part de l'image officielle, avec un `FROM`, et on travaille dessus en rajoutant des fichiers, en enlevant des paquets... Cette solution a l'inconvénient de multiplier les *layers* inutiles, et d'augmenter la taille de l'image.
-   * Soit on copie le `Dockerfile` de l'image officielle (c'est le cas pour [Mattermost](https://gitlab.utc.fr/picasoft/projets/dockerfiles/-/blob/master/pica-mattermost/Dockerfile)), et on fait nos modifications. Cette solution a pour inconvénient de devoir se synchroniser avec les modifications du `Dockerfile` officiel à chaque mise à jour, s'il contient des améliorations ou corrections importantes.+   * Soit on copie le `Dockerfile` de l'image officielle (c'est le cas pour [Mattermost](https://gitlab.utc.fr/picasoft/projets/services/mattermost/-/blob/master/Dockerfile)), et on fait nos modifications. Cette solution a pour inconvénient de devoir se synchroniser avec les modifications du `Dockerfile` officiel à chaque mise à jour, s'il contient des améliorations ou corrections importantes.
 </bootnote> </bootnote>
  
 Le `Dockerfile` peut contenir des directives `COPY` pour ajouter des fichiers à l'image. S'il s'agit d'un ou deux fichiers de configuration, ou d'un peu de code pour personnaliser une page d'accueil, aucun souci pour les versionner directement sur le dépôt.  Le `Dockerfile` peut contenir des directives `COPY` pour ajouter des fichiers à l'image. S'il s'agit d'un ou deux fichiers de configuration, ou d'un peu de code pour personnaliser une page d'accueil, aucun souci pour les versionner directement sur le dépôt. 
  
-<bootnote important>Si vous avez besoin de copier le code d'un service entier, il est préférable de créer un dépôt spécifique qui contiendra le code du service, et de faire un `git pull` dans le `Dockerfile`, ou de récupérer une release avec un `wget`. En effet, le dépôt `dockerfiles` ne contient en théorie que de la configuration pour Docker, pas le code des services.</bootnote>+<bootnote important>Si vous avez besoin de copier le code d'un service entier, il est préférable de créer un dépôt spécifique qui contiendra le code du service, et de faire un `git pull` dans le `Dockerfile`, ou de récupérer une release avec un `wget`. En effet, le dépôt d'un service ne contient en théorie que de la configuration pour Docker, pas le code du service.</bootnote>
  
 ### Fichiers de configuration ### Fichiers de configuration
  • technique/docker/picasoft/new.txt
  • de rdelaage