GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come impostare build automatiche per immagini Docker su GitHub

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

Il nuovo registro dei contenitori di GitHub

Il nuovo registro dei 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 tramite push dal repository, spesso automaticamente con l'aiuto di una pipeline GitHub Actions.

GitHub Container Registry aggiunge semplicemente la compatibilità specifica Docker ai pacchetti GitHub, facendolo funzionare come un registro container ai fini dell'esecuzione di docker pull e altri comandi CLI.

Non è necessario pubblicare nel registro contenitori di GitHub:puoi comunque pubblicare su Docker Hub da un'azione con alcune configurazioni. Tuttavia, le azioni predefinite funzionano con GHCR immediatamente, quindi è molto più semplice da configurare.

Come impostare build automatiche per i 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

Imposta un repository, quindi fai clic su "Azioni" per creare una nuova azione. In "Più flussi di lavoro di integrazione continua", fai clic su "Pubblica contenitore Docker".

Questo genera un modello iniziale, che necessita di alcune modifiche per funzionare. Innanzitutto, il IMAGE_NAME la variabile deve essere cambiata nel nome dell'immagine.

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

run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin

Attualmente, l'unico schema di autenticazione supportato è il Personal Access Tokens (PAT), che non è ottimo 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 vuoi usare GHCR da un flusso di lavoro di GitHub Actions, dovrai memorizzare un PAT nei Segreti per il tuo repository, perché ovviamente basta incollare qui dentro sarebbe orrendo.

Innanzitutto, dovrai andare su Impostazioni> Impostazioni sviluppatore> Token di accesso personali e creare un nuovo token. Questo token necessita di write:packages e delete:packages impostazioni. Tieni presente che, per qualche motivo, la selezione di scrivi pacchetti 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.

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

Una volta eseguito il commit, attiverà un flusso di lavoro per l'esecuzione e la creazione del pacchetto. Puoi monitorare lo stato di tutti i flussi di lavoro in esecuzione nella scheda "Azioni". In questo caso, non è riuscito perché le azioni predefinite prevedono l'esecuzione di test, 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 nel tuo profilo.


Docker
  1. Come spostare le immagini Docker tra host

  2. Come cercare, estrarre, elencare ed eliminare immagini Docker su Linux

  3. Come modificare le immagini Docker

  4. Come configurare Docker all'interno del sistema Windows per Linux (WSL2) su Windows 10

  5. Come posso impostare un nick predefinito per le nuove connessioni irssi?

Come aggiornare le immagini Docker all'ultima versione

Come impostare Pihole in un contenitore Docker

Come configurare un container Docker Apache

Come configurare Docker in WSL [Passo dopo passo]

Come controllare l'utilizzo dello spazio su disco per immagini Docker, contenitori e volumi

Guida completa per la rimozione delle immagini Docker