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

Eseguire il push delle immagini nei registry

Configuri i workflow per eseguire il push delle immagini Docker create in container registry come Docker Hub o GitHub Container Registry.

Eseguire il push delle immagini nei registry è una lezione CI/CD with GitHub Actions & DevOps Pipelines gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CI/CD with GitHub Actions & DevOps Pipelines, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.

Cosa sono i registry di container?

Un registry di container è un servizio di archiviazione online sicuro per le immagini Docker. Lo si può considerare come un cloud drive progettato appositamente per i pacchetti della propria applicazione.

  • Conserva diverse versioni delle immagini.
  • Rende semplice condividere le immagini con altri.
  • È fondamentale per il deployment in ambienti diversi.

Perché usare i registry?

I registry sono essenziali per lo sviluppo software moderno. Offrono diversi vantaggi importanti:

  • Condivisione delle immagini: Distribuire facilmente le immagini dell'applicazione.
  • Controllo delle versioni: Archiviare e gestire diverse versioni dell'applicazione.
  • Deployment affidabile: Garantire deployment coerenti in ambienti diversi.
  • Sicurezza: Molti registry offrono la scansione delle vulnerabilità.

Servizi di registry più comuni

Sono disponibili molti servizi di registry di container. Due tra i più diffusi sono:

  • Docker Hub: Un registry pubblico ampiamente utilizzato. Ideale per condividere immagini pubbliche e per i progetti personali.
  • GitHub Container Registry (GHCR): Strettamente integrato con i repository GitHub. Ideale per le immagini private e per le organizzazioni che utilizzano già GitHub.

Anche altri importanti provider cloud offrono registry propri, come AWS ECR o Google Container Registry.

Autenticazione al registry

Prima di poter eseguire il push di un'immagine in un registry, è necessario dimostrare la propria identità. Questo processo si chiama autenticazione, o "login".

Di solito si forniscono un nome utente e un personal access token (PAT) o una password. Queste credenziali garantiscono che solo gli utenti autorizzati possano eseguire il push o il pull delle immagini dai repository privati.

Utilizzo di docker/login-action

In GitHub Actions, il modo migliore per autenticarsi con la maggior parte dei registry compatibili con Docker consiste nell'utilizzare docker/login-action.

Questa action esegue in modo sicuro il login del workflow nel registry specificato, consentendo ai passaggi successivi di eseguire il push delle immagini. Accetta username e password come input.

Eseguire il push su Docker Hub

Per eseguire il push di un'immagine su Docker Hub, il workflow deve:

  1. Eseguire il login: Utilizzare docker/login-action con il nome utente Docker Hub e un Personal Access Token (PAT) archiviato come GitHub Secret.
  2. Build e push: Utilizzare docker/build-push-action per creare l'immagine e impostare push: true. Verificare che il tag dell'immagine includa il nome utente Docker Hub, ad esempio your_username/my-app:latest.

Esempio di workflow per Docker Hub

Ecco un esempio di workflow GitHub Actions per creare e pubblicare un'immagine Docker su Docker Hub. Ricordi di configurare DOCKER_USERNAME e DOCKER_TOKEN come GitHub Secrets nel repository.

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

Eseguire il push su GHCR

GitHub Container Registry (GHCR) offre un'integrazione perfetta. Differenze principali per GHCR:

  • Autenticazione: È possibile utilizzare il valore integrato GITHUB_TOKEN per l'autenticazione. Impostare username: ${{ github.actor }} e password: ${{ secrets.GITHUB_TOKEN }}.
  • Autorizzazioni: Il job deve avere l'autorizzazione packages: write.
  • Tag delle immagini: Le immagini vengono contrassegnate nel formato ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Esempio di workflow per GHCR

Questo workflow mostra come eseguire il push di un'immagine in GitHub Container Registry. Noti il blocco permissions e il formato del tag dell'immagine.

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

Verifica della comprensione

Esaminiamo rapidamente ciò che ha imparato sul push delle immagini nei registri di container.

Riepilogo: il push delle immagini!

Ottimo lavoro! Ha imparato a eseguire il push di immagini Docker nei registri di container utilizzando GitHub Actions.

  • I registri di container archiviano e gestiscono le immagini Docker.
  • L'autenticazione tramite credenziali è un primo passaggio fondamentale.
  • docker/login-action consente di effettuare l'accesso in modo sicuro.
  • Ha visto esempi sia per Docker Hub sia per GitHub Container Registry, comprendendo i rispettivi requisiti specifici di autenticazione e di assegnazione dei tag.

Ora imparerà a distribuire queste immagini in Kubernetes!

Domande Frequenti

La lezione «Eseguire il push delle immagini nei registry» è gratuita?

Sì — il testo completo di «Eseguire il push delle immagini nei registry» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CI/CD with GitHub Actions & DevOps Pipelines, passa a CoddyKit PRO. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.

Cosa imparerò in «Eseguire il push delle immagini nei registry»?

Configuri i workflow per eseguire il push delle immagini Docker create in container registry come Docker Hub o GitHub Container Registry. Eserciti CI/CD with GitHub Actions & DevOps Pipelines con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare CI/CD with GitHub Actions & DevOps Pipelines?

Non è richiesta alcuna esperienza precedente. CI/CD with GitHub Actions & DevOps Pipelines su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Eseguire il push delle immagini nei registry»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione CI/CD with GitHub Actions & DevOps Pipelines?

Sì. Ogni lezione CI/CD with GitHub Actions & DevOps Pipelines include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creare immagini Docker con Actions
  2. Eseguire il push delle immagini nei registry
  3. Eseguire il deploy su Kubernetes con Actions
  4. Chart Helm e manifest Kubernetes in CI/CD
← Torna a CI/CD with GitHub Actions & DevOps Pipelines