Observação: atualmente, o GitHub Packages está em versão beta no GitHub AE.
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.
Autenticar-se no GitHub Packages
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 para se autenticar no GitHub Packages ou na API do GitHub AE. Ao criar um personal access token, 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, 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 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 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.
cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin
Para usar este exemplo de comando de logon, substitua USERNAME
pelo seu nome de usuário do GitHub AE , HOSTNAME
pela URL do sua empresa e ~/TOKEN.txt
pelo caminho do arquivo para o personal access token do GitHub AE.
Para obter mais informações, confira "Logon do Docker".
Publicar uma imagem
Observação: O GitHub Packages Registro do Docker será substituído no futuro GitHub AE pelo Container registry, que dá um suporte melhor ao contêiner. O
Observação: 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 empresa, e VERSION pela versão do pacote no momento do build.
docker tag IMAGE_ID docker.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 empresa, e PATH pela imagem se não está no diretório de trabalho atual.
docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
-
Publicar a imagem no GitHub Packages.
docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Observação: efetue push da imagem usando
IMAGE_NAME:VERSION
e nãoIMAGE_NAME:SHA
.
Exemplo de publicação de uma imagem do Docker
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
Observação: O GitHub Packages Registro do Docker será substituído no futuro GitHub AE 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 empresa e TAG_NAME pela marca da imagem que deseja instalar.
docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
Observação: efetue pull da imagem usando IMAGE_NAME:VERSION
e não IMAGE_NAME:SHA
.