Come impostare build automatiche per immagini Docker su GitHub

0
152

GitHub ha una funzione chiamata GitHub Actions che esegue build, test e altri script ogni volta che si apportano modifiche a un repository. Un pratico caso d'uso è la creazione e il push automatici di contenitori Docker in un registro contenitori.

Nuovo registro contenitori di GitHub

< p>Il nuovo registro contenitori di GitHub, chiamato GitHub Container Registry, è leggermente diverso dalla maggior parte dei registri come Docker Hub. Funziona come un'estensione di GitHub Packages, un sistema di archiviazione dei pacchetti che associa i pacchetti ai loro repository di codice sorgente. I pacchetti possono essere compilati e inviati dal repository, spesso automaticamente con l'aiuto di una pipeline di GitHub Actions.

GitHub Container Registry aggiunge semplicemente la compatibilità specifica di Docker ai pacchetti GitHub, facendolo funzionare come un registro di container allo scopo di eseguire docker pull e altri comandi CLI.

Non è necessario pubblicare nel registro contenitori di GitHub, è comunque possibile pubblicare nell'hub Docker da un'azione con alcune configurazioni. Le azioni predefinite funzionano immediatamente con GHCR, quindi è molto più semplice da configurare.

Come impostare le build automatiche per Pacchetti GitHub

Per iniziare, avrai bisogno di un repository. Anche se pubblichi solo pacchetti, avrai comunque bisogno di un repository, perché il formato per GHCR è:

ghcr.io/username/repository/image:version Advertisement

Imposta un repository, quindi fai clic su “Azioni” per creare una nuova azione. In “Flussi di lavoro di integrazione continua,” fare clic su “Pubblica contenitore Docker.”

< p>Questo genera un modello di partenza, che necessita di alcune modifiche per funzionare. Innanzitutto, la variabile IMAGE_NAME deve essere modificata con il nome dell'immagine.

Quindi, sulla riga 39, troverai dove accede a GHCR.

run: echo “${{ secrets.CR_PAT }}” | accesso alla finestra mobile https://ghcr.io -u ${{ github.actor }} –password-stdin

Attualmente, l'unico schema di autenticazione supportato è Personal Access Tokens (PAT), che non è eccezionale per la sicurezza perché garantisce l'accesso a livello di account. GitHub lo sa e sta lavorando a una soluzione migliore per il futuro, ma nel frattempo se desideri utilizzare GHCR da un flusso di lavoro di GitHub Actions, dovrai memorizzare un PAT nei segreti per il tuo repository, perché ovviamente incollarlo qui sarebbe orribile.

Per prima cosa, devi andare su Impostazioni > Impostazioni sviluppatore > Token di accesso personali e creare un nuovo token. Questo token necessita delle impostazioni write:packages e delete:packages. Nota che per qualche motivo, selezionando i pacchetti di scrittura si seleziona automaticamente “Controllo completo dei repository,” che devi deselezionare.

Quindi, vai alle impostazioni del repository e crea un nuovo segreto chiamato CR_PAT, per abbinare l'azione.

Annuncio

Torna all'azione e fai clic su “Avvia commit” per inviarlo al repository.

Una volta che è 8217 ;s commit, attiverà un flusso di lavoro per eseguire e creare il pacchetto. Puoi monitorare lo stato di tutti i flussi di lavoro in esecuzione nella sezione “Azioni” scheda. Qui, non è riuscito perché le azioni predefinite si aspettano che ci siano test da eseguire, cosa che questa immagine non aveva.

Una volta che ha avuto successo, dovresti vedere il contenitore nel registro, sotto “Pacchetti” nella pagina principale del repository o sotto i pacchetti sul tuo profilo.