Bygge Docker-avbildninger med Actions
Automatiser byggingen av Docker-avbildninger for applikasjonene dine direkte i GitHub Actions-arbeidsflytene.
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:
- Hente ut koden din.
- Konfigurere byggemiljøet for Docker.
- 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@v4Trinn 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@v3Trinn 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:latestKomplett 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:latestKort 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
Dockerfilesom mal for imaget. - Konfigurering av en grunnleggende GitHub Actions-arbeidsflyt.
- Bruk av viktige handlinger som
actions/checkout,docker/setup-buildx-actionogdocker/build-push-action.
I neste leksjon ser vi på hvordan du pusher disse bygde imagene til et containerregister!
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
- Bygge Docker-avbildninger med Actions
- Sende avbildninger til registre
- Distribuere til Kubernetes med Actions
- Helm Charts og Kubernetes-manifester i CI/CD