DevOps-bootcamp · leksjon

Bygge Docker-avbildninger med Actions

Automatiser byggingen av Docker-avbildninger for applikasjonene dine direkte i GitHub Actions-arbeidsflytene.

Leksjon 1 av 411 trinn

Bygge Docker-avbildninger med Actions er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva er Docker-images?

Velkommen! I denne leksjonen lærer du å bygge Docker-images ved hjelp av GitHub Actions.

Først: Hva er et Docker-image? Tenk på det som en lett, frittstående og kjørbar pakke som inneholder alt som trengs for å kjøre en programvaredel:

  • Koden din
  • Et kjøremiljø, for eksempel Java eller Python
  • Systemverktøy og biblioteker
  • Konfigurasjonsfiler

Det fungerer som en mal for å opprette Docker-containere og sørger for at applikasjonen kjører på samme måte i ulike miljøer.

Hvorfor automatisere Docker-bygginger?

Manuell bygging av Docker-images kan være repetitivt og utsatt for feil. Det er her automatisering kommer til nytte!

Ved å integrere bygging av Docker-images i CI/CD-pipelinen med GitHub Actions får du:

  • Konsistens: Hver bygging følger de samme trinnene.
  • Hastighet: Automatiske bygginger er raskere enn manuelle.
  • Pålitelighet: Færre menneskelige feil.
  • Integrasjon: Bygginger utløses automatisk når koden endres.

Dette er en grunnleggende praksis i moderne DevOps!

Dockerfile-oppskriften

En Dockerfile er en tekstfil som inneholder alle kommandoene som trengs for å sette sammen et Docker-image. Den fungerer som en oppskrift.

Her er et svært enkelt eksempel på en Dockerfile:

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

Forstå Dockerfile

La oss se nærmere på den enkle Dockerfile-filen:

  • FROM alpine:latest: Angir basis-imaget. Vi starter med en liten Linux-distribusjon som heter Alpine.
  • WORKDIR /app: Angir arbeidsmappen inne i imaget.
  • COPY . .: Kopierer alle filer fra prosjektmappen din til /app-mappen inne i imaget.
  • CMD ["echo", "Hello from Docker!"]: Dette er kommandoen som kjøres når en container startes fra dette imaget.

Denne filen ligger i roten av prosjektet ditt.

Konfigurere arbeidsflyten

For å bygge Docker-images med GitHub Actions oppretter du en YAML-fil, for eksempel .github/workflows/docker-build.yml, i repositoriet ditt.

Denne filen definerer arbeidsflyten din, som består av en serie automatiserte trinn.

En grunnleggende arbeidsflyt for bygging av et image innebærer vanligvis:

  1. Hente ut koden din.
  2. Konfigurere byggemiljøet for Docker.
  3. Bygge Docker-imaget.

Trinn 1: Hent koden din

Det første trinnet i nesten alle GitHub Actions-arbeidsflyter er å hente koden fra repositoriet ditt. Dette gjøres ved hjelp av actions/checkout-handlingen.

Den kloner repositoriet ditt til runneren, slik at Dockerfile-filen og applikasjonskoden blir tilgjengelige i byggeprosessen.

Slik ser det ut i arbeidsflytfilen din:

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

Trinn 2: Konfigurer Docker Buildx

Deretter må vi konfigurere byggemiljøet for Docker. docker/setup-buildx-action anbefales på det sterkeste.

Buildx er en Docker-komponent som utvider byggefasilitetene i Docker og støtter avanserte funksjoner som bygging for flere plattformer.

Legg til dette trinnet i arbeidsflyten din:

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

Trinn 3: Bygg Docker-imaget

Nå kommer hoveddelen: bygging av imaget! Til dette bruker vi docker/build-push-action.

Viktige alternativer:

  • context: .: Angir byggesammenhengen, vanligvis roten av repositoriet ditt.
  • push: false: Foreløpig bygger vi bare imaget uten å pushe det til et register. Vi tar for oss pushing i en senere leksjon.
  • tags: my-app:latest: Tildeler imaget et navn og en tagg.
      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

Komplett eksempel på byggearbeidsflyt

Her er den komplette GitHub Actions-arbeidsflyten for å bygge et Docker-image. Husk at denne YAML-en skal legges i .github/workflows/docker-build.yml.

Denne arbeidsflyten utløses ved hver push til repositoriet ditt.

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

Kort kunnskapssjekk

La oss teste hvor godt du har forstått bygging av Docker-images med GitHub Actions.

Oppsummering: Bygge Docker-images

Godt jobbet! Du har lært det grunnleggende om å automatisere bygging av Docker-images med GitHub Actions.

Vi har gått gjennom:

  • Hva Docker-images er, og hvorfor de er viktige.
  • Rollen til en Dockerfile som mal for imaget.
  • Konfigurering av en grunnleggende GitHub Actions-arbeidsflyt.
  • Bruk av viktige handlinger som actions/checkout, docker/setup-buildx-action og docker/build-push-action.

I neste leksjon ser vi på hvordan du pusher disse bygde imagene til et containerregister!

Gratis å komme i gang

Lær deg DevOps-bootcamp med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «Bygge Docker-avbildninger med Actions» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Bygge Docker-avbildninger med Actions», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «Bygge Docker-avbildninger med Actions»?

Automatiser byggingen av Docker-avbildninger for applikasjonene dine direkte i GitHub Actions-arbeidsflytene. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Bygge Docker-avbildninger med Actions»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Bygge Docker-avbildninger med Actions
  2. Sende avbildninger til registre
  3. Distribuere til Kubernetes med Actions
  4. Helm Charts og Kubernetes-manifester i CI/CD
← Tilbake til DevOps-bootcamp