Note
Talvez esse tipo de pacote não esteja disponível para sua instância, pois os administradores do site podem habilitar ou desabilitar cada tipo de pacote compatível. Para obter mais informações, confira "Configurar o suporte ao ecossistema de pacote para sua empresa".
Sobre o suporte ao Docker
Ao instalar ou publicar uma imagem do Docker, o registro do Docker atualmente não é compatível com camadas externas como, por exemplo, as imagens do Windows.
Docker Engine v25 não é compatível com Docker Registry em GitHub Enterprise Server. Em vez disso, recomendamos o uso de Container registry. Para saber mais sobre migrações manuais, consulte "Fazendo a migração para o Registro do Contêiner a partir do Registro Docker".
Autenticar-se no GitHub Packages
O GitHub Packages dá suporte apenas à autenticação que usa um personal access token (classic). Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal".
Você precisa de um token de acesso para publicar, instalar e excluir pacotes privados, públicos e internos.
Você pode usar um personal access token (classic) para se autenticar no GitHub Packages ou na API do GitHub Enterprise Server. Ao criar um personal access token (classic), você pode atribuir diferentes escopos de token, dependendo da sua necessidade. Para obter mais informações sobre escopos relacionados a pacotes para personal access token (classic), confira "Sobre permissões para o GitHub Packages".
Para efetuar a autenticação em um registro do GitHub Packages dentro de um fluxo de trabalho de GitHub Actions, você pode utilizar:
GITHUB_TOKEN
para publicar pacotes associados ao repositório do fluxo de trabalho.- um personal access token (classic) com pelo menos escopo
read:packages
para instalar pacotes associados a outros repositórios privados (que não podem ser acessados porGITHUB_TOKEN
).
Para obter mais informações sobre o GITHUB_TOKEN
usado em fluxos de trabalho do GitHub Actions, confira "Autenticação automática de token".
Autenticar com um personal access token
Você precisa usar um personal access token (classic) com os escopos apropriados para publicar e instalar pacotes no GitHub Packages. Para obter mais informações, confira "Introdução ao GitHub Packages".
Você pode se autenticar no GitHub Packages usando o comando de logon docker
do Docker.
Para manter suas credenciais seguras, recomendamos que você salve seu personal access token em um arquivo local no computador e use o sinalizador --password-stdin
do Docker, que lê o token por meio de um arquivo local.
Se a sua instância tiver o isolamento de subdomínio habilitado:
cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin
Se a sua instância tiver o isolamento de subdomínio desabilitado:
cat ~/TOKEN.txt | docker login HOSTNAME -u USERNAME --password-stdin
Para usar este exemplo de comando de logon, substitua USERNAME
pelo seu nome de usuário do GitHub Enterprise Server , HOSTNAME
pela URL do sua instância do GitHub Enterprise Server e ~/TOKEN.txt
pelo caminho do arquivo para o personal access token do GitHub Enterprise Server.
Para obter mais informações, confira "Logon do Docker".
Publicar uma imagem
Note
O GitHub Packages Registro do Docker será substituído no futuro GitHub Enterprise Server pelo Container registry, que dá um suporte melhor ao contêiner. O
Note
Os nomes das imagens só devem usar letras minúsculas.
O GitHub Packages aceita várias imagens do Docker de nível superior por repositório. Um repositório pode ter qualquer número de tags de imagem. Você poderá conhecer uma publicação de serviço degradada ou instalar imagens do Docker com tamanho superior a 10 GB. As camadas são limitadas em 5 GB cada. Para obter mais informações, confira "Marca do Docker" na documentação do Docker.
Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, confira "Visualizar pacotes".
-
Determine o nome e a ID da imagem do Docker usando
docker images
.$ docker images > < > > REPOSITORY TAG IMAGE ID CREATED SIZE > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB
-
Ao usar a ID de imagem do Docker, marque a imagem do Docker substituindo OWNER pelo nome da conta pessoal ou organização que é o proprietário do repositório, REPOSITORY pelo nome do repositório que contém o projeto, IMAGE_NAME pelo nome do pacote ou da imagem, HOSTNAME pelo nome do host dosua instância do GitHub Enterprise Server, e VERSION pela versão do pacote no momento do build.
Se a sua instância tiver o isolamento de subdomínio habilitado:
docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Se a sua instância tiver o isolamento de subdomínio desabilitado:
docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
- Se você ainda não compilou uma imagem do Docker para o pacote, compile a imagem substituindo OWNER pelo nome da conta pessoal ou organização que é o proprietário do repositório, REPOSITORY pelo nome do repositório que contém o projeto, IMAGE_NAME pelo nome do pacote ou da imagem, VERSION pela versão do pacote no momento do build, HOSTNAME pelo nome do host do sua instância do GitHub Enterprise Server, e PATH pela imagem se não está no diretório de trabalho atual.
Se a sua instância tiver o isolamento de subdomínio habilitado:
docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
Se a sua instância tiver o isolamento de subdomínio desabilitado:
docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
- Publicar a imagem no GitHub Packages.
Se a sua instância tiver o isolamento de subdomínio habilitado:
docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Se a sua instância tiver o isolamento de subdomínio desabilitado:
docker push HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Note
Efetue push da imagem usando IMAGE_NAME:VERSION
, e não IMAGE_NAME:SHA
.
Exemplo de publicação de uma imagem do Docker
Esses exemplos pressupõem que a sua instância tenha o isolamento de subdomínio habilitado.
Você pode publicar a versão 1.0 da imagem monalisa
no repositório octocat/octo-app
usando uma ID de imagem.
$ docker images
> REPOSITORY TAG IMAGE ID CREATED SIZE
> monalisa 1.0 c75bebcdd211 4 weeks ago 1.11MB
# Tag the image with OWNER/REPO/IMAGE_NAME
$ docker tag c75bebcdd211 docker.HOSTNAME/octocat/octo-app/monalisa:1.0
# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0
Você pode publicar uma nova imagem do Docker pela primeira vez e dar a ela o nome monalisa
.
# Build the image with docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
# Assumes Dockerfile resides in the current working directory (.)
$ docker build -t docker.HOSTNAME/octocat/octo-app/monalisa:1.0 .
# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0
Baixando uma imagem
Note
O GitHub Packages Registro do Docker será substituído no futuro GitHub Enterprise Server pelo Container registry, que dá um suporte melhor ao contêiner. O
Use o comando docker pull
para instalar uma imagem do Docker por meio do GitHub Packages, substituindo OWNER pelo nome da conta pessoal ou organização que é o proprietário do repositório, REPOSITORY pelo nome do repositório que contém o projeto, IMAGE_NAME pelo nome do pacote ou da imagem, HOSTNAME pelo nome do host do sua instância do GitHub Enterprise Server e TAG_NAME pela marca da imagem que deseja instalar.
Se a sua instância tiver o isolamento de subdomínio habilitado:
docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
Se a sua instância tiver o isolamento de subdomínio desabilitado:
docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
Note
Efetue pull da imagem usando IMAGE_NAME:VERSION
, e não IMAGE_NAME:SHA
.