Så här konfigurerar du automatiska builds för Docker -bilder på GitHub

0
226

GitHub har en funktion som heter GitHub Actions som kör automatiska builds, tester och andra skript när du gör ändringar i ett arkiv. Ett användbart fall av detta är att automatiskt bygga och skjuta Docker-behållare till ett behållarregister.

GitHub's New Container Registry

< p>GitHubs nya containerregister, kallat GitHub Container Registry, är lite annorlunda än de flesta register som Docker Hub. Det fungerar som en förlängning av GitHub Packages, ett paketlagringssystem som associerar paket med sina källkodförråd. Paket kan byggas och skjutas från förvaret, ofta automatiskt med hjälp av en pipeline för GitHub Actions.

GitHub Container Registry lägger helt enkelt till Docker-specifik kompatibilitet till GitHub-paket, vilket gör att den fungerar som ett containerregister för att köra docker pull och andra CLI-kommandon.

Du behöver inte publicera till GitHubs containerregister & du kan fortfarande publicera till Docker Hub från en åtgärd med viss konfiguration. De förbyggda åtgärderna fungerar dock med GHCR ur lådan, så det är mycket enklare att konfigurera.

Så här ställer du in automatiska byggnader för att GitHub -paket

För att starta behöver du ett arkiv. Även om du bara publicerar paket behöver du fortfarande en repo, eftersom formatet för GHCR är:

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

Skapa en repo och klicka sedan på “ Åtgärder ” för att skapa en ny åtgärd. Under “ Fler kontinuerliga integrationsarbetsflöden, ” klicka på “ Publicera Docker Container. ”

< p> Detta genererar en startmall som kräver några ändringar för att fungera. Först måste variabeln IMAGE_NAME ändras till ditt bildnamn.

Sedan, på rad 39, hittar du var den loggar in på GHCR.

kör: eko “$ {{secrets.CR_PAT}}” | docker -inloggning https://ghcr.io -u $ {{github.actor}} –password -stdin

För närvarande är det enda autentiseringsschemat som stöds PAT (Personal Access Tokens), vilket inte är bra för säkerheten eftersom de ger kontotäckande åtkomst. GitHub vet detta och arbetar med en bättre fix för framtiden, men under tiden om du vill använda GHCR från ett GitHub Actions -arbetsflöde måste du lagra en PAT i hemligheterna för ditt arkiv, för uppenbarligen bara att klistra in det här vore hemskt.

Först måste du gå till Inställningar & gt; Utvecklarinställningar & gt; Personal Access Tokens och skapa en ny token. Denna token behöver skriv: paket och ta bort: paketinställningar. Observera att av någon anledning väljer “ Full kontroll över förråd automatiskt att välja skrivpaket ” som du måste avmarkera.

Gå sedan över till förvarets inställningar och skapa en ny hemlighet som heter CR_PAT för att matcha åtgärden.

Annons

Gå tillbaka till åtgärden och klicka på “ Start Commit ” för att flytta den till förvaret.

Once it &#8217 ; s åtagande, kommer det att utlösa ett arbetsflöde för att köra och bygga paketet. Du kan övervaka statusen för alla löpande arbetsflöden under “ Åtgärder ” flik. Här misslyckades det eftersom standardåtgärderna förväntar sig att det kommer att köras tester, som den här bilden inte hade.

När det har lyckats bör du se behållaren i registret under “ Paket ” på förrådets huvudsida eller under paketen i din profil.