Skip to main content
Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.
GitHub AE está actualmente en un lanzamiento limitado. Por favor, contacta a nuestro equipo de ventas para conocer más sobre esto.

Ejecutar trabajos en un contenedor

Use a container to run the steps in a job.

Resumen

Use jobs.<job_id>.container to create a container to run any steps in a job that don't already specify a container. Si tienes pasos que usan tanto acciones de script como de contenedor, las acciones de contenedor se ejecutarán como contenedores hermanos en la misma red con los mismos montajes de volumen.

Si no configuras un container, todos los pasos se ejecutan directamente en el host especificado por runs-on a menos que un paso se refiera a una acción configurada para ejecutarse en un contenedor.

Example: Running a job within a container

jobs:
  my_job:
    container:
      image: node:14.16
      env:
        NODE_ENV: development
      ports:
        - 80
      volumes:
        - my_docker_volume:/volume_mount
      options: --cpus 1

Cuando solo especificas una imagen de contenedor, puedes omitir la palabra clave image.

jobs:
  my_job:
    container: node:14.16

Defining the container image

Utiliza jobs.<job_id>.container.image para definir la imagen de Docker a utilizar como el contenedor para ejecutar la acción. El valor puede ser el nombre de imagen de Docker Hub o un nombre de registro.

Defining credentials for a container registry

Si el registro del contenedor de la imagen requiere autenticación para extraerla, puedes utilizar jobs.<job_id>.container.credentials para configurar un map del username y password. Las credenciales son los mismos valores que proporcionarías al comando de docker login.

Ejemplo: definir las credenciales para un registro de contenedores

container:
  image: ghcr.io/owner/image
  credentials:
     username: ${{ github.actor }}
     password: ${{ secrets.github_token }}

Using environment variables with a container

Use jobs.<job_id>.container.env to set a map of environment variables in the container.

Exposing network ports on a container

Utiliza jobs.<job_id>.container.ports para configurar un array de puertos para exponer en el contenedor.

Mounting volumes in a container

Use jobs.<job_id>.container.volumes to set an array of volumes for the container to use. Puedes usar volúmenes para compartir datos entre servicios u otros pasos en un trabajo. Puedes especificar volúmenes Docker con nombre, volúmenes Docker anónimos o montajes de enlace en el host.

Para especificar un volumen, especifica la ruta de origen y destino:

<source>:<destinationPath>.

<source> es un nombre de volumen o una ruta absoluta en la máquina host, y <destinationPath> es una ruta absoluta en el contenedor.

Example: Mounting volumes in a container

volumes:
  - my_docker_volume:/volume_mount
  - /data/my_data
  - /source/directory:/destination/directory

Setting container resource options

Use jobs.<job_id>.container.options to configure additional Docker container resource options. Para obtener una lista de opciones, consulta las opciones "crear docker".

Advertencia: La opción --network no es compatible.