CI/CD med GitHub Actions och DevOps-pipelines · Lektion

Skicka avbildningar till register

Konfigurera arbetsflöden för att skicka era byggda Docker-avbildningar till containerregister som Docker Hub eller GitHub Container Registry.

Lektion 2 av 411 steg

Skicka avbildningar till register är en gratis lektion i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för CI/CD med GitHub Actions och DevOps-pipelines, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i CI/CD med GitHub Actions och DevOps-pipelines innehåller totalt 4 lektioner.

Vad är containerregister?

Ett containerregister är en säker onlinelagringstjänst för era Docker-avbildningar. Se det som en molnlagring som är särskilt utformad för programmets paket.

  • Registren lagrar olika versioner av era avbildningar.
  • De gör det enkelt att dela avbildningar med andra.
  • De är avgörande för distribution till olika miljöer.

Varför använda register?

Register är nödvändiga i modern programvaruutveckling. De ger flera viktiga fördelar:

  • Dela avbildningar: Distribuera programmets avbildningar enkelt.
  • Versionshantering: Lagra och hantera olika versioner av programmet.
  • Tillförlitlig distribution: Säkerställ konsekventa distributioner i olika miljöer.
  • Säkerhet: Många register erbjuder sårbarhetsskanning.

Vanliga registertjänster

Det finns många tillgängliga containerregistertjänster. Två populära tjänster som ni ofta stöter på är:

  • Docker Hub: Ett välanvänt offentligt register. Utmärkt för att dela offentliga avbildningar och för personliga projekt.
  • GitHub Container Registry (GHCR): Tätt integrerat med GitHub-arkiv. Utmärkt för privata avbildningar och organisationer som redan använder GitHub.

Andra stora molnleverantörer erbjuder också egna register, till exempel AWS ECR eller Google Container Registry.

Registerautentisering

Innan ni kan pusha en avbildning till ett register måste ni bevisa vem ni är. Denna process kallas autentisering, eller att logga in.

Vanligtvis anger ni ett användarnamn och en personlig åtkomsttoken (PAT) eller ett lösenord. Dessa autentiseringsuppgifter säkerställer att endast behöriga användare kan pusha eller hämta avbildningar från era privata arkiv.

Använda docker/login-action

I GitHub Actions är det bästa sättet att autentisera mot de flesta Docker-kompatibla register att använda docker/login-action.

Denna action loggar säkert in ert workflow i det angivna registret, så att efterföljande steg kan pusha avbildningar. Den tar emot username och password som indata.

Pusha till Docker Hub

För att pusha en avbildning till Docker Hub måste ert workflow:

  1. Logga in: Använd docker/login-action med ert Docker Hub-användarnamn och en personlig åtkomsttoken (PAT) som lagras som en GitHub Secret.
  2. Bygga och pusha: Använd docker/build-push-action för att bygga avbildningen och ange push: true. Kontrollera att avbildningstaggen innehåller ert Docker Hub-användarnamn, till exempel your_username/my-app:latest.

Exempel på Docker Hub-workflow

Här är ett exempel på ett GitHub Actions-workflow som bygger och pushar en Docker-avbildning till Docker Hub. Kom ihåg att konfigurera DOCKER_USERNAME och DOCKER_TOKEN som GitHub Secrets i ert arkiv.

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

Pusha till GHCR

GitHub Container Registry (GHCR) erbjuder sömlös integrering. Viktiga skillnader för GHCR:

  • Autentisering: Ni kan använda den inbyggda GITHUB_TOKEN för autentisering. Ange username: ${{ github.actor }} och password: ${{ secrets.GITHUB_TOKEN }}.
  • Behörigheter: Jobbet behöver behörigheten packages: write.
  • Taggning av avbildningar: Avbildningar taggas enligt formatet ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Exempel på GHCR-workflow

Detta workflow visar hur en avbildning pushas till GitHub Container Registry. Observera blocket permissions och formatet för avbildningstaggen.

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

Kontrollera era kunskaper

Låt oss snabbt gå igenom vad ni har lärt er om att skicka avbildningar till containerregister.

Repetition: Skicka era avbildningar!

Bra jobbat! Ni har lärt er att skicka Docker-avbildningar till containerregister med hjälp av GitHub Actions.

  • Containerregister lagrar och hanterar era Docker-avbildningar.
  • Autentisering med autentiseringsuppgifter är ett avgörande första steg.
  • docker/login-action hjälper er att logga in på ett säkert sätt.
  • Ni har sett exempel på både Docker Hub och GitHub Container Registry och förstått deras olika krav på autentisering och taggning.

Nu ska ni lära er att driftsätta dessa avbildningar i Kubernetes!

Gratis att börja

Lär dig CI/CD med GitHub Actions och DevOps-pipelines med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Skicka avbildningar till register” gratis?

Ja – hela texten till ”Skicka avbildningar till register” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i CI/CD med GitHub Actions och DevOps-pipelines, kan Ni uppgradera till CoddyKit PRO. Kursen i CI/CD med GitHub Actions och DevOps-pipelines innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skicka avbildningar till register”?

Konfigurera arbetsflöden för att skicka era byggda Docker-avbildningar till containerregister som Docker Hub eller GitHub Container Registry. Ni övar på CI/CD med GitHub Actions och DevOps-pipelines med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig CI/CD med GitHub Actions och DevOps-pipelines?

Du behöver inga förkunskaper. Utbildningen i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Skicka avbildningar till register”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här CI/CD med GitHub Actions och DevOps-pipelines-lektionen?

Ja. Varje CI/CD med GitHub Actions och DevOps-pipelines-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Bygga Docker-avbildningar med Actions
  2. Skicka avbildningar till register
  3. Distribuera till Kubernetes med Actions
  4. Helm Charts och Kubernetes-manifest i CI/CD
← Tillbaka till CI/CD med GitHub Actions och DevOps-pipelines