1
resposta

[Sugestão] Git Hub Container Registry - Opção para armazenar imagens

Saudações galera!
Fiz um projeto recente em que eu precisei deixar público o meu repositório, neste contexto, o Git Hub oferece uma opção chamada Git Hub Container Registry oi GHCR.

É bem fácil de configurar, podemos fazer isso no processo de Continuos Integration do Git Hub Actions.

Vocês podem dar uma olhada aqui em um projeto que eu criei.
[https://github.com/DanLearnings/book-catalog](Book Catalog)

Este foi o workflow que eu criei para este projeto:

# File: .github/workflows/ci-build-publish.yml

# Nome da nossa pipeline, que aparecerá na aba "Actions" do GitHub
name: CI - Build and Publish Docker Image

# Define o gatilho (trigger) da pipeline
on:
  # Roda a pipeline toda vez que houver um push na branch 'main'
  push:
    branches: [ "main" ]
  # Permite que a pipeline seja executada manualmente pela interface do GitHub
  workflow_dispatch:

# Define os trabalhos (jobs) que a pipeline irá executar
jobs:
  build-and-publish:
    # O tipo de máquina virtual que o job irá rodar
    runs-on: ubuntu-latest

    # Permissões necessárias para o GITHUB_TOKEN automático
    # 'contents: read' para poder clonar o repositório
    # 'packages: write' para poder publicar a imagem no GHCR
    permissions:
      contents: read
      packages: write

    # Define os passos sequenciais do nosso job
    steps:
      # 1. Clona o código do repositório para a máquina virtual
      - name: Checkout repository
        uses: actions/checkout@v4

      # 2. Configura o Java (necessário para o Maven construir o projeto)
      - name: Set up JDK 21
        uses: actions/setup-java@v4
        with:
          java-version: '21'
          distribution: 'temurin'

      # 3. Faz login no GitHub Container Registry (GHCR)
      - name: Log in to the Container registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          # O GITHUB_TOKEN é um token secreto gerado automaticamente pelo GitHub Actions
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      # 4. Extrai metadados (como tags) da imagem Docker
      # Isso cria tags úteis automaticamente, como 'latest' e o número do commit
      - name: Extract metadata for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ghcr.io/${{ github.repository }}

      # 5. Constrói a imagem Docker e a publica no GHCR
      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          # Usa as tags geradas no passo anterior
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Danrley! Tudo bem?

Que ótimo que você está explorando o GitHub Container Registry (GHCR) para armazenar suas imagens Docker! É uma solução prática e integrada ao GitHub, o que facilita bastante a automação dos processos de CI/CD.

Pelo que você descreveu, você já configurou um workflow de GitHub Actions para construir e publicar suas imagens Docker no GHCR. Isso é excelente, pois automatiza a criação e o armazenamento das imagens sempre que há mudanças no seu código.

Parabéns pela iniciativa de compartilhar essa descoberta com a comunidade!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!