CI/CD med GitHub Actions og DevOps-arbejdsgange · Lektion

Push af images til registries

Konfigurer workflows til at pushe Deres byggede Docker-images til containerregistries som Docker Hub eller GitHub Container Registry.

Lektion 2 af 411 trin

Push af images til registries er en gratis CI/CD med GitHub Actions og DevOps-arbejdsgange-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i CI/CD med GitHub Actions og DevOps-arbejdsgange, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. CI/CD med GitHub Actions og DevOps-arbejdsgange-kurset indeholder 4 lektioner i alt.

Hvad er containerregistre?

Et containerregister er en sikker onlinelagringstjeneste til dine Docker-images. Forestil dig det som et skydrev, der er designet specifikt til din applikationspakker.

  • De gemmer forskellige versioner af dine images.
  • De gør det nemt at dele images med andre.
  • De er afgørende for udrulning til forskellige miljøer.

Hvorfor bruge registre?

Registre er afgørende for moderne softwareudvikling. De giver flere vigtige fordele:

  • Deling af images: Distribuer nemt dine applikations-images.
  • Versionsstyring: Gem og administrer forskellige versioner af din app.
  • Pålidelig udrulning: Sørg for ensartede udrulninger i forskellige miljøer.
  • Sikkerhed: Mange registre tilbyder scanning for sårbarheder.

Gængse containerregistre

Der findes mange containerregistertjenester. To populære, som du ofte møder, er:

  • Docker Hub: Et udbredt offentligt register. Det er velegnet til deling af offentlige images og til personlige projekter.
  • GitHub Container Registry (GHCR): Tæt integreret med GitHub-kodearkiver. Det er fremragende til private images og organisationer, der allerede bruger GitHub.

Andre store cloud-udbydere tilbyder også deres egne registre, f.eks. AWS ECR eller Google Container Registry.

Godkendelse til containerregistre

Før du kan sende et image til et register, skal du bevise, hvem du er. Denne proces kaldes godkendelse eller at 'logge ind'.

Du angiver typisk et brugernavn og en personlig adgangstoken (PAT) eller adgangskode. Disse legitimationsoplysninger sikrer, at kun godkendte brugere kan sende eller hente images fra dine private kodearkiver.

Brug af docker/login-action

I GitHub Actions er den bedste måde at godkende dig på over for de fleste Docker-kompatible registre at bruge docker/login-action.

Denne handling logger din arbejdsgang sikkert ind på det angivne register, så efterfølgende trin kan sende images. Den tager username og password som inddata.

Send images til Docker Hub

For at sende et image til Docker Hub skal din arbejdsgang:

  1. Logge ind: Brug docker/login-action med dit Docker Hub-brugernavn og en personlig adgangstoken (PAT), der er gemt som en GitHub Secret.
  2. Bygge og sende: Brug docker/build-push-action til at bygge dit image, og angiv push: true. Sørg for, at imagets tag indeholder dit Docker Hub-brugernavn, f.eks. your_username/my-app:latest.

Eksempel på Docker Hub-arbejdsgang

Her er et eksempel på en GitHub Actions-arbejdsgang til at bygge og sende et Docker-image til Docker Hub. Husk at konfigurere DOCKER_USERNAME og DOCKER_TOKEN som GitHub Secrets i dit kodearkiv.

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

Send images til GHCR

GitHub Container Registry (GHCR) giver problemfri integration. De vigtigste forskelle for GHCR er:

  • Godkendelse: Du kan bruge den indbyggede GITHUB_TOKEN til godkendelse. Sæt username: ${{ github.actor }} og password: ${{ secrets.GITHUB_TOKEN }}.
  • Tilladelser: Dit job skal have tilladelsen packages: write.
  • Tildeling af tags: Images får tags som ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.

Eksempel på GHCR-arbejdsgang

Denne arbejdsgang viser, hvordan du sender et image til GitHub Container Registry. Bemærk blokken permissions og formatet for imagets tag.

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

Tjek din forståelse

Lad os hurtigt gennemgå, hvad du har lært om at sende containerimages til containerregistre.

Opsummering: Send dine containerimages!

Godt gået! Du har lært at sende Docker-containerimages til containerregistre ved hjælp af GitHub Actions.

  • Containerregistre gemmer og administrerer dine Docker-containerimages.
  • Godkendelse er et afgørende første trin, hvor du bruger legitimationsoplysninger.
  • docker/login-action hjælper dig med at logge sikkert ind.
  • Du har set eksempler på både Docker Hub og GitHub Container Registry og forstået deres særlige krav til godkendelse og mærkning.

Næste gang lærer du, hvordan du udruller disse images til Kubernetes!

Gratis at komme i gang

Lær CI/CD med GitHub Actions og DevOps-arbejdsgange med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Push af images til registries” gratis?

Ja — hele teksten til “Push af images til registries” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af CI/CD med GitHub Actions og DevOps-arbejdsgange-kurset, skal du opgradere til CoddyKit PRO. CI/CD med GitHub Actions og DevOps-arbejdsgange-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Push af images til registries”?

Konfigurer workflows til at pushe Deres byggede Docker-images til containerregistries som Docker Hub eller GitHub Container Registry. Du øver dig i CI/CD med GitHub Actions og DevOps-arbejdsgange med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på CI/CD med GitHub Actions og DevOps-arbejdsgange?

Der kræves ingen tidligere erfaring. CI/CD med GitHub Actions og DevOps-arbejdsgange på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Push af images til registries”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne CI/CD med GitHub Actions og DevOps-arbejdsgange-lektion?

Ja. Alle CI/CD med GitHub Actions og DevOps-arbejdsgange-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Bygning af Docker-images med Actions
  2. Push af images til registries
  3. Deployment til Kubernetes med Actions
  4. Helm Charts og Kubernetes-manifester i CI/CD
← Tilbage til CI/CD med GitHub Actions og DevOps-arbejdsgange