Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.
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
Use jobs.<job_id>.container.image
to define the Docker image to use as the container to run the action. The value can be the Docker Hub image name or a registry name.
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
.
Example: Defining credentials for a container registry
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
Use jobs.<job_id>.container.ports
to set an array
of ports to expose on the container.
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.