Intensiv DevOps-uddannelse · Lektion

Bygning af Docker-images med Actions

Automatisér processen med at bygge Docker-images til Deres applikationer direkte i Deres GitHub Actions-workflows.

Lektion 1 af 411 trin

Bygning af Docker-images med Actions er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad er Docker-images?

Velkommen! I denne lektion lærer du at bygge Docker-images med GitHub Actions.

Hvad er så et Docker-image? Forestil dig det som en let, selvstændig og kørbar pakke, der indeholder alt, hvad der skal til for at køre et stykke software:

  • Din kode
  • Et kørselsmiljø (f.eks. Java, Python)
  • Systemværktøjer og biblioteker
  • Konfigurationsfiler

Det fungerer som en skabelon til oprettelse af Docker-containere og sikrer, at din applikation kører ensartet i forskellige miljøer.

Hvorfor automatisere Docker-opbygninger?

Manuel opbygning af Docker-images kan være ensformig og fejlbehæftet. Her er automatisering nyttig!

Ved at integrere opbygning af Docker-images i dit CI/CD-forløb med GitHub Actions får du:

  • Ensartethed: Hver opbygning følger de samme trin.
  • Hastighed: Automatiske opbygninger er hurtigere end manuelle.
  • Pålidelighed: Færre menneskelige fejl.
  • Integration: Opbygninger udløses automatisk ved kodeændringer.

Det er en central praksis i moderne DevOps!

Dockerfile-skabelonen

En Dockerfile er en tekstfil, der indeholder alle kommandoerne til at samle et Docker-image. Det er som en opskrift.

Her er et meget enkelt Dockerfile-eksempel:

FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]

Forstå Dockerfile

Lad os gennemgå den enkle Dockerfile:

  • FROM alpine:latest: Dette angiver basis-imaget. Vi tager udgangspunkt i en lille Linux-distribution, der hedder Alpine.
  • WORKDIR /app: Angiver arbejdsbiblioteket inde i imaget.
  • COPY . .: Kopierer alle filer fra projektbiblioteket til /app-biblioteket inde i imaget.
  • CMD ["echo", "Hello from Docker!"]: Dette er kommandoen, der køres, når en container starter fra dette image.

Denne fil ligger i roden af dit projekt.

Konfigurer din arbejdsgang

For at bygge Docker-images med GitHub Actions opretter du en YAML-fil (f.eks. .github/workflows/docker-build.yml) i dit kodearkiv.

Denne fil definerer din arbejdsgang, som består af en række automatiserede trin.

En grundlæggende arbejdsgang til opbygning af et image omfatter normalt:

  1. Hente din kode.
  2. Konfigurere Docker-opbygningsmiljøet.
  3. Bygge Docker-imaget.

Trin 1: Hent din kode

Det første trin i næsten enhver GitHub Actions-arbejdsgang er at hente koden fra dit kodearkiv. Det gør du med handlingen actions/checkout.

Den kloner dit kodearkiv til runneren, så din Dockerfile og applikationskode er tilgængelige under opbygningen.

Sådan ser det ud i din arbejdsgangsfil:

      - name: Checkout repository code
        uses: actions/checkout@v4

Trin 2: Konfigurer Docker Buildx

Nu skal du konfigurere Docker-opbygningsmiljøet. Handlingen docker/setup-buildx-action anbefales stærkt.

Buildx er en Docker-komponent, der udvider Dockers opbygningsmuligheder og understøtter avancerede funktioner som opbygning til flere platforme.

Føj dette trin til din arbejdsgang:

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

Trin 3: Byg Docker-imaget

Nu til det vigtigste: opbygningen af imaget! Til det bruger vi docker/build-push-action.

Vigtige indstillinger:

  • context: .: Angiver opbygningskonteksten (normalt roden af dit kodearkiv).
  • push: false: Indtil videre bygger vi blot uden at sende imaget til et containerregister. Vi gennemgår, hvordan du sender images senere.
  • tags: my-app:latest: Tildeler imaget et navn og et tag.
      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

Eksempel på komplet opbygningsarbejdsgang

Her er den komplette GitHub Actions-arbejdsgang til at bygge et Docker-image. Husk, at denne YAML-kode skal placeres i .github/workflows/docker-build.yml.

Denne arbejdsgang udløses ved hver ændring, der sendes til dit kodearkiv.

name: Build Simple Docker Image

on: [push]

jobs:
  build-image:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

Hurtigt tjek

Lad os teste din forståelse af, hvordan man bygger Docker-images med GitHub Actions.

Opsummering: Opbygning af Docker-images

Godt gået! Du har lært de grundlæggende principper for automatisering af Docker-image-opbygninger med GitHub Actions.

Vi har gennemgået:

  • Hvad Docker-images er, og hvorfor de er afgørende.
  • Rollen for en Dockerfile som skabelon for imaget.
  • Konfiguration af en grundlæggende GitHub Actions-arbejdsgang.
  • Brug af vigtige handlinger som actions/checkout, docker/setup-buildx-action og docker/build-push-action.

I næste lektion undersøger vi, hvordan du sender disse opbyggede images til et containerregister!

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse 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
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Bygning af Docker-images med Actions” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Bygning af Docker-images med Actions”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Bygning af Docker-images med Actions”?

Automatisér processen med at bygge Docker-images til Deres applikationer direkte i Deres GitHub Actions-workflows. Du øver dig i Intensiv DevOps-uddannelse 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å Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse 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 1 af 4.

Hvor lang tid tager lektionen “Bygning af Docker-images med Actions”?

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 Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-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 Intensiv DevOps-uddannelse