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.