es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

GitHub Actions – Usa un registrador de contenedores personalizado

Al utilizar las acciones de GitHub (por ejemplo, el análisis de código de CodeQL), se puede especificar una imagen de contenedor en la que se ejecutará la acción, consulte https://docs.github.com/es/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idcontainerimage

En los documentos se indica lo siguiente:

La imagen Docker que se usará como contenedor para ejecutar la acción. El valor puede ser el nombre de imagen de Docker Hub o un nombre de registro.

Necesito especificar una imagen que esté en un registro privado, no en (el público) Docker Hub. Los documentos parecen sugerir que es posible (“o un nombre de registro”), pero no estoy seguro de cómo podría especificar una imagen privada (me refiero a la imagen privada en Docker como https://mi.servidor.com:1234/dir/nombre-de-imagen:latest).

¿Es posible? Si es así, ¿cómo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible utilizar una imagen de docker privada en GitHub actions. Para especificar una imagen del registro privado, es necesario incluir la URL completa de la imagen, incluyendo el registro y utilizar un token de acceso para autenticar. Aquí están los pasos:

    1. Crear un token de acceso personal (PAT) con acceso de lectura a su registro. Esto se puede hacer en la configuración de su registro o utilizando un comando de inicio de sesión de Docker.
    2. En el flujo de trabajo de sus acciones de GitHub, establezca las secrets con el PAT como una variable de entorno. Por ejemplo:
    name: myworkflow
    on: push
    env:
      MY_ACCESS_TOKEN: ${{ secrets.MY_ACCESS_TOKEN }}
    jobs:
      myjob:
        runs-on: ubuntu-latest
        container:
          image: my.server.com:1234/dir/image-name:latest
        steps:
          ... (demás pasos de trabajo) ...
    
    1. Utilice la variable de entorno en su comando para autenticar. Por ejemplo:
    name: myworkflow
    on: push
    env:
      MY_ACCESS_TOKEN: ${{ secrets.MY_ACCESS_TOKEN }}
    jobs:
      myjob:
        runs-on: ubuntu-latest
        container:
          image: my.server.com:1234/dir/image-name:latest
        steps:
          - name: Pull private image
            env:
              REGISTRY_URL: my.server.com:1234
              IMAGE_NAME: dir/image-name:latest
            run: |
              docker login -u $REGISTRY_USER -p $REGISTRY_TOKEN https://$REGISTRY_URL
              docker pull $REGISTRY_URL/$IMAGE_NAME
          ... (demás pasos de trabajo) ...
    

    Tenga en cuenta que deberá reemplazar REGISTRY_URL y IMAGE_NAME con los valores correctos para su registro e imagen. También puede ser necesario ajustar el comando de autenticación en función de la configuración de su registro.

Comments are closed.