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

Bygga Docker-avbildningar med Actions

Automatisera byggprocessen för Docker-avbildningar för era applikationer direkt i era GitHub Actions-arbetsflöden.

Lektion 1 av 411 steg

Bygga Docker-avbildningar med Actions är en gratis lektion i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit. Detta är lektion 1 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 Docker-avbildningar?

Välkomna! I den här lektionen lär ni er att bygga Docker-avbildningar med GitHub Actions.

Först: vad är en Docker-avbildning? Se den som ett lättviktigt, fristående och körbart paket som innehåller allt som behövs för att köra en programvarukomponent:

  • Er kod
  • En runtime, till exempel Java eller Python
  • Systemverktyg och bibliotek
  • Konfigurationsfiler

Det fungerar som en ritning för att skapa Docker-containrar och säkerställer att programmet körs konsekvent i olika miljöer.

Varför automatisera Docker-byggen?

Att bygga Docker-avbildningar manuellt kan vara repetitivt och felbenäget. Det är här automatisering kommer till nytta!

Genom att integrera byggen av Docker-avbildningar i CI/CD-pipelinen med GitHub Actions får ni:

  • Konsekvens: Varje bygge följer samma steg.
  • Hastighet: Automatiska byggen går snabbare än manuella.
  • Tillförlitlighet: Färre mänskliga misstag.
  • Integrering: Byggen startas automatiskt när koden ändras.

Det är en central metod inom modern DevOps!

Dockerfile som ritning

En Dockerfile är en textfil som innehåller alla kommandon för att sammanställa en Docker-avbildning. Den fungerar som ett recept.

Här är ett mycket enkelt exempel på en Dockerfile:

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

Förstå Dockerfile

Vi går igenom den enkla Dockerfile rad för rad:

  • FROM alpine:latest: Anger basavbildningen. Vi börjar med en liten Linux-distribution som heter Alpine.
  • WORKDIR /app: Anger arbetskatalogen inuti avbildningen.
  • COPY . .: Kopierar alla filer från projektkatalogen till katalogen /app inuti avbildningen.
  • CMD ["echo", "Hello from Docker!"]: Kommandot som körs när en container startas från den här avbildningen.

Filen ligger i projektets rotkatalog.

Konfigurera ert workflow

För att bygga Docker-avbildningar med GitHub Actions skapar ni en YAML-fil, till exempel .github/workflows/docker-build.yml, i ert arkiv.

Filen definierar ert workflow, som består av en serie automatiserade steg.

Ett grundläggande workflow för att bygga en avbildning omfattar vanligtvis:

  1. Hämta er kod.
  2. Konfigurera Docker-byggmiljön.
  3. Bygga Docker-avbildningen.

Steg 1: Hämta koden

Det första steget i nästan alla GitHub Actions-workflows är att hämta koden från ert arkiv. Detta görs med actionen actions/checkout.

Den klonar ert arkiv till runner-miljön, så att er Dockerfile och programkod blir tillgängliga under byggprocessen.

Så här ser det ut i workflowfilen:

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

Steg 2: Konfigurera Docker Buildx

Nu behöver vi konfigurera Docker-byggmiljön. docker/setup-buildx-action rekommenderas starkt.

Buildx är en Docker-komponent som utökar Dockers byggfunktioner och stöder avancerade funktioner som byggen för flera plattformar.

Lägg till detta steg i ert workflow:

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

Steg 3: Bygg Docker-avbildningen

Nu kommer huvuddelen: att bygga avbildningen! För detta använder vi docker/build-push-action.

Viktiga alternativ:

  • context: .: Anger byggkontexten, vanligtvis projektets rotkatalog.
  • push: false: Just nu bygger vi bara avbildningen utan att pusha den till ett register. Vi går igenom hur ni pushar den i en senare lektion.
  • tags: my-app:latest: Tilldelar avbildningen ett namn och en tagg.
      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

Fullständigt exempel på byggworkflow

Här är det kompletta GitHub Actions-workflowet för att bygga en Docker-avbildning. Kom ihåg att denna YAML-kod ska placeras i .github/workflows/docker-build.yml.

Detta workflow startas vid varje push till ert arkiv.

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

Snabbtest

Nu testar vi er förståelse av hur Docker-avbildningar byggs med GitHub Actions.

Sammanfattning: Bygga Docker-avbildningar

Bra jobbat! Ni har lärt er grunderna i att automatisera byggen av Docker-avbildningar med GitHub Actions.

Vi har gått igenom:

  • Vad Docker-avbildningar är och varför de är viktiga.
  • Vilken roll en Dockerfile har som ritning för avbildningen.
  • Hur ett grundläggande GitHub Actions-workflow konfigureras.
  • Hur viktiga actions som actions/checkout, docker/setup-buildx-action och docker/build-push-action används.

I nästa lektion utforskar vi hur ni pushar de byggda avbildningarna till ett containerregister!

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 ”Bygga Docker-avbildningar med Actions” gratis?

Ja – hela texten till ”Bygga Docker-avbildningar med Actions” 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 ”Bygga Docker-avbildningar med Actions”?

Automatisera byggprocessen för Docker-avbildningar för era applikationer direkt i era GitHub Actions-arbetsflöden. 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 1 av 4.

Hur lång tid tar lektionen ”Bygga Docker-avbildningar med Actions”?

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