Desarrollador Gladys: ¿Cómo construir una imagen Docker de prueba?

Salut à tous :slight_smile:

Un petit tutoriel destiné aux développeurs Gladys pour expliquer comment builder une image Docker de test.

Pré-requis:

Avoir un compte Docker Hub

Etape 1: Créer ces variables d’environnements dans Github Actions

Rendez-vous sur votre fork de Gladys, dans les « Settings » de votre repo:

Créez ces secrets :

DOCKERHUB_PASSWORD (Peut-être un mot de passe clé d'API)
DOCKERHUB_REPO (L'image Docker a pousser, exemple: `pierregilles/gladys-test` )
DOCKERHUB_USER (ton nom d'utilisateur sur DockerHub)

Etape 2: Rendez-vous dans l’onglet « Actions » => « Build Gladys dev images »

Etape 3 : Lancer un build

Cliquez sur « Run Workflow » et sélectionnez la branche à builder, l’architecture à builder, et le tag Docker qui sera utilisé !

Le build dure environ 4 heure si vous sélectionnez toutes les plateformes, si vous voulez économiser du temps, vous pouvez retirer arm/v7 qui est assez lent :slight_smile:

Etape 4 : :partying_face:

C’est bon, vous pouvez partager l’image Docker buildée qui est donc disponible sur l’image Docker :

your_username/gladys:your_tag

Me lancé, y me topé con algunos puntos, así que aquí aclaro lo que finalmente entendí. Quizás esto ayude a otros :wink:

Había entendido, siguiendo esta página, que necesitaba una cuenta de Github y un repositorio para clonar el código de Gladys. Pero no entendí de inmediato que también necesitaría una cuenta de Docker con un repositorio. La cuenta se crea aquí y el repositorio se crea en la página https://hub.docker.com/repository/create?namespace=[tu_nombre_de_usuario_docker]. Y es este nombre de repositorio el que hay que configurar en Github como secreto DOCKERHUB_REPO (en el formato [nombre_de_cuenta_docker/nombre_del_repositorio]).

El secreto DOCKER_USER es el nombre de la cuenta de Docker, fácil. Pero el secreto DOCKER_PASSWORD no es la contraseña de esta cuenta de Docker. Hay que crear un ‹ Personal Access Token › en Docker (en la página https://app.docker.com/accounts/[nombre_de_tu_cuenta_docker]/settings/personal-access-tokens), con el permiso de acceso ‹ Read, Write, Delete ›.

Luego, al ir a la página Actions de Github, ‹ Build Gladys dev images › no es visible directamente. Primero hay que validar la advertencia que dice ‹ I understand my worflows ›.

Cuando se lanza el paso ‹ Run workflow ›, un mensaje indica « Workflow run was successfully requested. », lo que significa que el build se realiza en segundo plano en los servidores de docker.com (y no localmente en mi ordenador). Al volver a la página ‹ Actions ›, se confirma que el build está en progreso…

Último punto: tuve que relanzar el build 3 veces. Tuve un error las dos primeras veces indicando « unable to access ‹ xxx (Michael Dungan) · GitHub ›: The requested URL returned error: 500 ». Al parecer, estos son problemas ‹ clásicos › cuando Docker y/o Github están un poco saturados…

Otro punto que no había entendido: el repositorio creado en docker.com debe configurarse (en la página ‹ settings ›) como un repositorio público, incluso si no está destinado a otros usuarios. Porque, de lo contrario, el comando ‹ docker run… › para desplegar esta versión en su hardware no encontrará el repositorio y se mostrará el siguiente error:

Unable to find image ‹ xxx/xxx:xxx › locally
docker: Error response from daemon: pull access denied for xxx/xxx, repository does not exist …

@StephaneB de lo contrario, puedes hacer un docker login en tu máquina si quieres mantener tu repositorio privado.