0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Aula

Envio de imagens para registros

Configure fluxos de trabalho para enviar suas imagens Docker criadas a registros de contêineres, como Docker Hub ou GitHub Container Registry.

Envio de imagens para registros é uma aula grátis de CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CI/CD with GitHub Actions & DevOps Pipelines, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.

O que são registros de contêineres?

Um registro de contêineres é um serviço seguro de armazenamento online para suas imagens do Docker. Pense nele como uma unidade de armazenamento na nuvem criada especificamente para os pacotes do seu aplicativo.

  • Eles armazenam diferentes versões das suas imagens.
  • Eles facilitam o compartilhamento de imagens com outras pessoas.
  • Eles são essenciais para a implantação em vários ambientes.

Por que usar registros?

Os registros são essenciais para o desenvolvimento moderno de software. Eles oferecem vários benefícios importantes:

  • Compartilhamento de imagens: Distribua facilmente as imagens do seu aplicativo.
  • Controle de versões: Armazene e gerencie diferentes versões do seu aplicativo.
  • Implantação confiável: Garanta implantações consistentes entre os ambientes.
  • Segurança: Muitos registros oferecem varredura de vulnerabilidades.

Serviços comuns de registro

Há muitos serviços de registro de contêineres disponíveis. Dois dos mais populares que você encontrará são:

  • Docker Hub: Um registro público amplamente usado. Ótimo para compartilhar imagens públicas e para projetos pessoais.
  • Registro de contêineres do GitHub (GHCR): É estreitamente integrado aos repositórios do GitHub. Excelente para imagens privadas e organizações que já usam o GitHub.

Outros grandes provedores de nuvem também oferecem seus próprios registros, como AWS ECR ou o Registro de contêineres do Google.

Autenticação no registro

Antes de enviar uma imagem para um registro, você precisa comprovar quem é. Esse processo é chamado de autenticação, ou de “fazer login”.

Normalmente, você fornecerá um nome de usuário e um token de acesso pessoal (PAT) ou uma senha. Essas credenciais garantem que somente usuários autorizados possam enviar ou baixar imagens dos seus repositórios privados.

Usando docker/login-action

Nas Ações do GitHub, a melhor maneira de se autenticar com a maioria dos registros compatíveis com o Docker é usar a ação docker/login-action.

Essa ação autentica seu fluxo de trabalho com segurança no registro especificado, permitindo que as etapas seguintes enviem imagens. Ela recebe username e password como entradas.

Enviando para o Docker Hub

Para enviar uma imagem ao Docker Hub, seu fluxo de trabalho precisa:

  1. Autenticar: Use docker/login-action com seu nome de usuário do Docker Hub e um token de acesso pessoal (PAT) armazenado como um segredo do GitHub.
  2. Compilar e enviar: Use docker/build-push-action para compilar sua imagem e defina push: true. Verifique se a etiqueta da imagem inclui seu nome de usuário do Docker Hub, por exemplo, your_username/my-app:latest.

Exemplo de fluxo de trabalho do Docker Hub

Aqui está um exemplo de fluxo de trabalho das Ações do GitHub para compilar e enviar uma imagem do Docker ao Docker Hub. Lembre-se de configurar DOCKER_USERNAME e DOCKER_TOKEN como segredos do GitHub no seu repositório.

name: Publish Docker image to Docker Hub

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ${{ secrets.DOCKER_USERNAME }}/my-app:latest

Enviando para o GHCR

O Registro de contêineres do GitHub (GHCR) oferece integração perfeita. Principais diferenças do GHCR:

  • Autenticação: Você pode usar o GITHUB_TOKEN integrado para autenticação. Defina username: ${{ github.actor }} e password: ${{ secrets.GITHUB_TOKEN }}.
  • Permissões: Seu trabalho precisa da permissão packages: write.
  • Atribuição de etiquetas às imagens: As imagens recebem etiquetas no formato ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Exemplo de fluxo de trabalho do GHCR

Este fluxo de trabalho demonstra como enviar uma imagem para o Registro de contêineres do GitHub. Observe o bloco de permissions e o formato da etiqueta da imagem.

name: Publish Docker image to GHCR

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write # Required for GHCR

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:latest

Verifique sua compreensão

Vamos revisar rapidamente o que você aprendeu sobre enviar imagens para registros de contêineres.

Recapitulação: envie suas imagens!

Excelente trabalho! Você aprendeu a enviar imagens do Docker para registros de contêineres usando GitHub Actions.

  • Os registros de contêineres armazenam e gerenciam suas imagens do Docker.
  • A autenticação é uma etapa inicial fundamental que usa credenciais.
  • docker/login-action ajuda você a entrar com segurança.
  • Você viu exemplos tanto do Docker Hub quanto do GitHub Container Registry e entendeu seus requisitos específicos de autenticação e marcação.

Em seguida, você aprenderá a implantar essas imagens no Kubernetes!

Perguntas Frequentes

A aula “Envio de imagens para registros” é grátis?

Sim — o texto completo de “Envio de imagens para registros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CI/CD with GitHub Actions & DevOps Pipelines, atualize para CoddyKit PRO. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.

O que vou aprender em “Envio de imagens para registros”?

Configure fluxos de trabalho para enviar suas imagens Docker criadas a registros de contêineres, como Docker Hub ou GitHub Container Registry. Você pratica CI/CD with GitHub Actions & DevOps Pipelines com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar CI/CD with GitHub Actions & DevOps Pipelines?

Nenhuma experiência prévia é necessária. CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Envio de imagens para registros”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de CI/CD with GitHub Actions & DevOps Pipelines?

Sim. Cada aula de CI/CD with GitHub Actions & DevOps Pipelines inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criação de imagens Docker com Actions
  2. Envio de imagens para registros
  3. Implantação no Kubernetes com Actions
  4. Gráficos Helm e manifestos do Kubernetes em CI/CD
← Voltar para CI/CD with GitHub Actions & DevOps Pipelines