Skip to main content

Enterprise Server 3.20 está disponível no momento como versão candidata a lançamento.

Executar trabalhos em um contêiner

Use um contêiner para executar as etapas de um trabalho.

Observação

No momento, não há suporte para executores hospedados no GitHub no GitHub Enterprise Server.

Visão geral

Instruções e sobreposições do Dockerfile

Um Dockerfile contém instruções e argumentos que definem o conteúdo e o comportamento de inicialização de um contêiner do Docker. Para obter mais informações sobre as instruções às quais o Docker dá suporte, confira Referência do Dockerfile na documentação do Docker.

Algumas instruções do Docker interagem com o GitHub Actions, e o arquivo de metadados de uma ação pode substituir algumas instruções do Docker. Certifique-se de que você esteja familiarizado com a forma como o arquivo Docker interage com GitHub Actions para evitar comportamento inesperado.

Para obter informações de referência, confira Suporte do arquivo Docker para GitHub Actions.

Definindo a imagem do contêiner

Executando trabalhos em uma imagem de contêiner

Definindo credenciais para o registro de um contêiner

Se o registro de contêiner da imagem exigir autenticação para efetuar pull da imagem, use jobs.<job_id>.container.credentials para definir um map do username e da password. As credenciais são os mesmos valores que você fornecerá ao comando docker login.

Exemplo: Definindo credenciais para o registro de um contêiner

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

Usando variáveis de ambiente com um contêiner

Expondo portas de rede em um contêiner

Use jobs.<job_id>.container.ports para definir uma array das portas a serem expostas no contêiner.

Montando volumes em um contêiner

Definindo opções de recurso de contêiner

Use jobs.<job_id>.container.options para configurar opções adicionais de recurso de contêiner do Docker. Para ver uma lista de opções, confira Opções de docker create.

Aviso

As opções --network e --entrypoint não têm suporte.