New tuto 3 done
This commit is contained in:
parent
5f4880dc50
commit
ba77aca73b
57 changed files with 1026 additions and 137 deletions
94
tutorial/devops/publish-docker.md
Normal file
94
tutorial/devops/publish-docker.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
\newpage
|
||||
|
||||
Publier une image Docker
|
||||
========================
|
||||
|
||||
Toutes les tâches de publication peuvent s'assimiler à des tâches de
|
||||
déploiement continu. C'est en particulier le cas lorsque le produit de
|
||||
compilation sera simplement publié et qu'il n'y a pas de service à mettre à
|
||||
jour ensuite (par exemple, dans le cas de Firefox ou de LibreOffice, une fois
|
||||
testés, les paquets sont envoyés sur le serveur d'où ils seront distribués ; il
|
||||
n'y a pas de service/docker à relancer).
|
||||
|
||||
À l'inverse, `youp0m` est à la fois un programme que l'on peut télécharger et
|
||||
un service un ligne qu'il faut déployer pour mettre à jour facilement. Pour
|
||||
simplifier le déploiement, nous utilisons des images Docker. Il faut cependant
|
||||
les générer ...
|
||||
|
||||
|
||||
## Mise en place du registre
|
||||
|
||||
*Si vous avez choisi Gitlab, vous pouvez utiliser directement le registre
|
||||
Docker intégré. Si vous utilisez Gitea, continuez cette section.*
|
||||
|
||||
Afin de disposer de notre propre registre Docker sur lequel publier nos images,
|
||||
nous allons utiliser l'image de registre fournie par Docker. Elle se lance
|
||||
comme suit :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
docker run --rm -d --name registry --network droneci -p 5000:5000 registry:2
|
||||
```
|
||||
</div>
|
||||
|
||||
Vous trouverez davantage d'informations
|
||||
[ici](https://docs.docker.com/registry/deploying/).
|
||||
|
||||
Vous pouvez tester son bon fonctionnement avec la commande suivante :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
42sh$ curl http://localhost:5000/v2/
|
||||
{}
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
## Publication de l'image
|
||||
|
||||
Une fois le registre démarré, il ne nous reste plus qu'à ajouter une étape de
|
||||
publication de l'image Docker. Cela se fait au moyen du plugin suivant :
|
||||
<http://plugins.drone.io/drone-plugins/drone-docker/>.
|
||||
|
||||
Sans plus de configuration, le registre que nous avons démarré
|
||||
n'attend pas d'authentification. Et comme il n'a pas de certificat TLS
|
||||
pour utiliser `https`, il est nécessaire de définir l'option
|
||||
`insecure` à `true`.
|
||||
|
||||
|
||||
## Test de l'image
|
||||
|
||||
Sur l'hôte, nous pouvons tester que l'image a bien été publiée grâce à la
|
||||
commande suivante :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
docker run --rm -p 8080:8080 localhost:5000/youp0m
|
||||
```
|
||||
</div>
|
||||
|
||||
On notera que ceci est possible exclusivement parce que le registre
|
||||
`localhost:5000` est considéré non-sûr par défaut. C'est à dire qu'il n'a pas
|
||||
besoin de certificat TLS sur sa connexion HTTP pour être utilisé.\newline
|
||||
Si on avait dû utiliser un autre nom de domaine, il aurait fallu
|
||||
[l'ajouter à la liste des
|
||||
`insecure-registries`](https://docs.docker.com/registry/insecure/).
|
||||
|
||||
|
||||
## Suite du déploiement
|
||||
|
||||
Pour aujourd'hui, nous en resterons là pour le déploiement, car nous n'avons
|
||||
pas d'environnement de production sur lequel déployer notre service.
|
||||
|
||||
Vous pouvez néamnoins tester les plugins
|
||||
[`scp`](http://plugins.drone.io/appleboy/drone-scp/) ou
|
||||
[`ansible`](http://plugins.drone.io/drone-plugins/drone-ansible/), si vous avez
|
||||
une machine virtuelle avec une connexion SSH. N'hésitez pas à l'ajouter à votre
|
||||
`.droneci.yml`.
|
||||
|
||||
|
||||
## Profitons !
|
||||
|
||||
Sonarqube a repéré quelques erreurs dans le code de `youp0m`, essayez de les
|
||||
corriger, et publiez une nouvelle version, pour observer toute la chaîne en
|
||||
action !
|
||||
Loading…
Add table
Add a link
Reference in a new issue