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 Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
technique:docker:picasoft:test [2020/10/07 20:05] – qduchemi | technique:docker:picasoft:test [2021/11/22 22:35] – ↷ Liens modifiés en raison d'un déplacement. qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{indexmenu_n> | {{indexmenu_n> | ||
# Tester une modification sur un service | # Tester une modification sur un service | ||
+ | |||
+ | < | ||
+ | Prérequis : les articles de [[technique: | ||
+ | </ | ||
+ | |||
+ | ## Préambule | ||
Avant de mettre en production un service, il faut s' | Avant de mettre en production un service, il faut s' | ||
< | < | ||
- | * Vous êtes connecté à la machine de test (`pica01-test.picasoft.net`) | + | * Vous êtes connecté à la machine de test (`pica01-test.picasoft.net`), |
- | * Vous vous trouvez dans le clone du dépôt `dockerfiles` (voir [[technique: | + | * Vous vous trouvez dans le clone du dépôt `dockerfiles` (voir [[technique: |
- | * Que le dépôt est à jour (`git pull`), | + | * Que les modifications |
* Que vous êtes que votre branche de travail (ou `master` si vous n'en avez pas créée). | * Que vous êtes que votre branche de travail (ou `master` si vous n'en avez pas créée). | ||
+ | * Que vous vous trouvez dans le sous-dossier du servir concerné. | ||
</ | </ | ||
< | < | ||
- | ### Automatiquement | + | ## Automatisation du test |
- | Le script | + | Le script |
Il a le désavantage qu'on comprend moins ce que l'on fait. Pour s'en servir, lancez : | Il a le désavantage qu'on comprend moins ce que l'on fait. Pour s'en servir, lancez : | ||
Ligne 22: | Ligne 29: | ||
$ ./ | $ ./ | ||
``` | ``` | ||
+ | |||
+ | < | ||
+ | Attention, cette commande écrase les modifications faites au sous-dossier par l' | ||
+ | </ | ||
Vérifiez que les logs ne produisent aucune erreur et que le service fonctionne bien sur l' | Vérifiez que les logs ne produisent aucune erreur et que le service fonctionne bien sur l' | ||
- | ### Manuellement | + | Si tout se passe bien, stoppez les logs avec `Ctrl+C` puis aller dans le dossier du service. Ensuite, passer à l' |
- | Si vous voulez tester le service "à la main", ou que le script ne fonctionne pas pour vous, ou pour toute autre raison, suivez ces étapes : | + | ## Tester manuellement |
- | #### Synchronisation | + | Si vous voulez tester le service "à la main", ou que le script ne fonctionne pas pour vous, ou pour toute autre raison, suivez ces étapes : |
+ | On suppose que le fichier Compose est déjà à jour (modifié sur la machine ou récupéré via un `git pull`). | ||
- | Synchronisez vous **exactement** avec le dépôt : | + | ### Remise à zéro |
- | + | ||
- | ```bash | + | |
- | # master ou votre branche perso | + | |
- | git checkout <votre branche> | + | |
- | git pull | + | |
- | ``` | + | |
- | + | ||
- | #### Remise à zéro | + | |
Si le service était déjà lancé sur la machine de test, éteignez-le et remettez les volumes à 0 : | Si le service était déjà lancé sur la machine de test, éteignez-le et remettez les volumes à 0 : | ||
Ligne 53: | Ligne 57: | ||
``` | ``` | ||
- | #### Construction des images | + | ### Construction des images |
Si le service utilise des images " | Si le service utilise des images " | ||
Ligne 67: | Ligne 71: | ||
``` | ``` | ||
- | * Si le `Dockerfile` a un nom différent, on utilise le switch `-f` | + | * Si le `Dockerfile` a un nom différent, on utilise le switch `-f`. |
- | * `< | + | * `< |
* `< | * `< | ||
- | #### Remplacement des URLs | + | ### Remplacement des URLs |
Si nécessaire. Certains services ne sont pas accessibles depuis Internet. | Si nécessaire. Certains services ne sont pas accessibles depuis Internet. | ||
Ligne 77: | Ligne 81: | ||
Remplacez les URL de production (`.picasoft.net`) par des URL de tests (`.test.picasoft.net`), | Remplacez les URL de production (`.picasoft.net`) par des URL de tests (`.test.picasoft.net`), | ||
- | * Si le service utilise Traefik, voir du côté de `traefik.http.services.< | + | * Si le service utilise Traefik, voir du côté de `traefik.http.services.< |
* Si le service utilise des fichiers de configuration, | * Si le service utilise des fichiers de configuration, | ||
- | ### Créer les fichiers | + | ### Créer les fichiers |
- | Copier | + | Dans le dossier `secrets`, copier |
- | #### Récupérer les nouvelles images | + | ### Récupérer les nouvelles images |
Si le service utilise des images officielles, | Si le service utilise des images officielles, | ||
Ligne 92: | Ligne 96: | ||
``` | ``` | ||
- | #### Lancer le service | + | ### Lancer le service |
```bash | ```bash | ||
Ligne 98: | Ligne 102: | ||
``` | ``` | ||
- | #### Vérifier que tout fonctionne bien | + | ### Vérifier que tout fonctionne bien |
```bash | ```bash | ||
Ligne 106: | Ligne 110: | ||
On constate l' | On constate l' | ||
- | ### En cas de problème | + | ## En cas de problème |
- | À partir de là, c'est carte blanche : on peut modifier la configuration, | + | Que les étapes de test aient été faites automatiquement ou manuellement, |
+ | |||
+ | À partir de là, c'est carte blanche : on peut modifier la configuration, | ||
Si jamais les modifications ont permis de résoudre le problème, on les commit et on les synchronise avec le dépôt. | Si jamais les modifications ont permis de résoudre le problème, on les commit et on les synchronise avec le dépôt. | ||
- | ### Revenir | + | < |
- | On se resynchronise avec l' | + | ## Revenir à l' |
- | ```bash | + | |
- | git reset --hard | + | On enlève |
- | ``` | + | |
## Que faire après les tests ? | ## Que faire après les tests ? | ||
- | Une fois qu'on est convaincu que la nouvelle version | + | Si on a construit une nouvelle image, il faut aussi pousser |
- | Au préalable, si le service | + | < |
```bash | ```bash | ||
- | docker-compose push | + | $ docker-compose push |
``` | ``` | ||
- | Cette commande pratique indique à Docker Compose | + | < |
On peut aussi le faire manuellement, | On peut aussi le faire manuellement, | ||
Ligne 140: | Ligne 145: | ||
``` | ``` | ||
- | Une fois les images poussées, on se rend sur la machine de production et on [lance | + | Une fois les images poussées, on peut se rendre |