3.8 KiB
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 qu'il faut déployer pour le mettre à jour. Afin de simplifier son
déploiement en production, nous utiliserons une image Docker.
Fonctionnement du registre de Gitea \
Gitea intègre un registre d'images Docker (depuis la version 1.17, mi-2022). Pour le moment, les images sont uniquement liées à un compte utilisateur ou à une organisation, pas directement à un dépôt. Une page permet de rattacher l'image envoyée à un dépôt, ce que l'on fera dans un deuxième temps.
Afin de pouvoir envoyer une image nous-même, nous devons nous connecter au registre :
::::: {.question}
N'a-t-on pas besoin d'un certificat TLS pour utiliser un registre Docker ? {-}
\
Ceci est possible exclusivement parce que le registre localhost
est considéré
non-sûr par défaut. C'est-à-dire qu'il n'a pas besoin de certificat TLS valide
sur sa connexion HTTP pour être utilisé.\
Si on avait dû utiliser un autre nom de domaine, il aurait fallu l'ajouter à
la liste des
insecure-registries
.
:::::
Nous pouvons ensuite envoyer une image pour s'assurer que tout va bien :
Rendez-vous ensuite sur la page http://gitea:3000/${USER}/-/packages pour
attribuer l'image au dépôt youp0m
(voir pour cela dans les paramètres de
l'image).
Publication de l'image \
Une fois le registre testé, 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/.
::::: {.exercice}
Continuons d'éditer le fichier .drone.yml
du dépôt pour faire générer à Drone
l'image Docker, et la publier.
Attention dans Drone, le domaine à utiliser pour contacter Gitea (et donc le
registre), n'est pas localhost
, mais gitea
. Comme notre registre n'a pas de
certificat TLS pour utiliser https
, il est nécessaire de définir l'option
insecure
à true
. Utilisez les secrets de Drone pour stocker le nom
d'utilisateur et le mot de passe d'accès au registre.
:::::
Test de l'image \
Sur notre hôte, nous pouvons tester que l'image a bien été publiée grâce à la commande suivante :
Si une nouvelle image est bien récupérée du dépôt, bravo, vous avez réussi !
Vers le déploiement
Nous n'allons pas faire le déploiement aujourd'hui, car nous n'avons pas d'environnement de production sur lequel déployer notre service.
Vous pouvez néanmoins tester les plugins
scp
ou
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 !