Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.
Visão Geral
Use jobs.<job_id>.container
to create a container to run any steps in a job that don't already specify a container. Se você tiver etapas que usam ações de script e de contêiner, as ações de contêiner serão executadas como contêineres irmãos na mesma rede e com as mesmas montagens de volume.
Se você não definir um container
, todas as etapas serão executadas diretamente no host especificado por runs-on
, a menos que uma etapa se refira a uma ação configurada para execução em um contêiner.
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
Ao especificar somente uma imagem de contêiner, você pode omitir a palavra-chave image
.
jobs:
my_job:
container: node:14.16
Definindo a imagem do contêiner
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.
Definindo credenciais para o registro de um contêiner
If the image's container registry requires authentication to pull the image, you can use jobs.<job_id>.container.credentials
to set a map
of the username
and password
. As credenciais são os mesmos valores que você forneceria para o comando login do docker
.
Example: Defining credentials for a container registry
container:
image: ghcr.io/owner/image
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
Usando variáveis de ambiente com um contêiner
Use jobs.<job_id>.container.env
to set a map
of environment variables in the container.
Expondo portas de rede em um contêiner
Use jobs.<job_id>.container.ports
to set an array
of ports to expose on the container.
Montando volumes em um contêiner
Use jobs.<job_id>.container.volumes
to set an array
of volumes for the container to use. É possível usar volumes para compartilhar dados entre serviços ou outras etapas em um trabalho. Você pode especificar volumes de nome Docker, volumes Docker anônimos ou vincular montagens no host.
Para especificar um volume, especifique o caminho de origem e destino:
<source>:<destinationPath>
.
<source>
é um nome de volume ou caminho absoluto na máquina host, e <destinationPath>
é um caminho absoluto no contêiner.
Example: Mounting volumes in a container
volumes:
- my_docker_volume:/volume_mount
- /data/my_data
- /source/directory:/destination/directory
Definindo opções de recurso de contêiner
Use jobs.<job_id>.container.options
to configure additional Docker container resource options. Para obter uma lista de opções, consulte "opções docker create
".
Aviso: A opção --network
não é compatível.