GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo configurar compilaciones automáticas para imágenes de Docker en GitHub

GitHub tiene una función llamada GitHub Actions que ejecuta compilaciones, pruebas y otros scripts automáticos cada vez que realiza cambios en un repositorio. Un caso de uso útil de esto es crear y enviar automáticamente contenedores Docker a un registro de contenedores.

Nuevo registro de contenedores de GitHub

El nuevo registro de contenedores de GitHub, llamado GitHub Container Registry, es un poco diferente a la mayoría de los registros como Docker Hub. Funciona como una extensión de GitHub Packages, un sistema de almacenamiento de paquetes que asocia paquetes con sus repositorios de código fuente. Los paquetes se pueden compilar y enviar desde el repositorio, a menudo automáticamente con la ayuda de una canalización de GitHub Actions.

GitHub Container Registry simplemente agrega compatibilidad específica de Docker a los paquetes de GitHub, lo que hace que funcione como un registro de contenedores para ejecutar docker pull y otros comandos CLI.

No necesita publicar en el registro de contenedores de GitHub; aún puede publicar en Docker Hub desde una acción con alguna configuración. Sin embargo, las acciones preconstruidas funcionan con GHCR desde el primer momento, por lo que es mucho más simple de configurar.

Cómo configurar compilaciones automáticas para paquetes de GitHub

Para empezar, necesitará un repositorio. Incluso si solo está publicando paquetes, aún necesitará un repositorio, porque el formato para GHCR es:

ghcr.io/username/repository/image:version

Configure un repositorio, luego haga clic en "Acciones" para crear una nueva acción. En "Más flujos de trabajo de integración continua", haga clic en "Publicar contenedor Docker".

Esto genera una plantilla de inicio, que necesita algunos cambios para funcionar. Primero, el IMAGE_NAME la variable debe cambiarse a su nombre de imagen.

Luego, en la línea 39, encontrará dónde inicia sesión en GHCR.

run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin

Actualmente, el único esquema de autenticación admitido son los tokens de acceso personal (PAT), que no son excelentes para la seguridad porque otorgan acceso a toda la cuenta. GitHub lo sabe y está trabajando en una mejor solución para el futuro, pero mientras tanto, si desea usar GHCR desde un flujo de trabajo de GitHub Actions, deberá almacenar una PAT en Secretos para su repositorio, porque obviamente solo pegar aquí dentro sería horrendo.

Primero, deberá dirigirse a Configuración> Configuración de desarrollador> Tokens de acceso personal y crear un nuevo token. Este token necesita write:packages y delete:packages ajustes. Tenga en cuenta que, por algún motivo, al seleccionar paquetes de escritura se selecciona automáticamente "Control total de repositorios", que debe desmarcar.

Luego, dirígete a la configuración del repositorio y crea un nuevo secreto llamado CR_PAT , para que coincida con la acción.

Regrese a la acción y haga clic en "Iniciar confirmación" para enviarla al repositorio.

Una vez confirmado, activará un flujo de trabajo para ejecutar y compilar el paquete. Puede monitorear el estado de todos los flujos de trabajo en ejecución en la pestaña "Acciones". Aquí, falló porque las acciones predeterminadas esperan que se ejecuten pruebas, que esta imagen no tenía.

Una vez que tenga éxito, debería ver el contenedor en el registro, bajo "Paquetes" en la página principal del repositorio, o bajo los paquetes en su perfil.


Docker
  1. Cómo mover imágenes de Docker entre hosts

  2. Cómo buscar, extraer, enumerar y eliminar imágenes de Docker en Linux

  3. Cómo modificar imágenes de Docker

  4. Cómo configurar Docker dentro del sistema Windows para Linux (WSL2) en Windows 10

  5. ¿Cómo configuro un nick predeterminado para nuevas conexiones irssi?

Cómo actualizar las imágenes de Docker a la última versión

Cómo configurar Pihole en un contenedor Docker

Cómo configurar un contenedor Apache Docker

Cómo configurar Docker en WSL [paso a paso]

Cómo verificar el uso de espacio en disco para imágenes, contenedores y volúmenes de Docker

Guía completa para eliminar imágenes de Docker