Budowanie obrazów Docker za pomocą Actions
Zautomatyzują Państwo proces budowania obrazów Docker dla aplikacji bezpośrednio w workflows GitHub Actions.
Budowanie obrazów Docker za pomocą Actions to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Czym są obrazy Docker?
Witamy! W tej lekcji nauczą się Państwo budować obrazy Docker za pomocą GitHub Actions.
Najpierw: czym jest obraz Docker? Można myśleć o nim jak o lekkim, samodzielnym, uruchamialnym pakiecie zawierającym wszystko, co jest potrzebne do uruchomienia fragmentu oprogramowania:
- Państwa kod
- Środowisko uruchomieniowe (np. Java, Python)
- Narzędzia systemowe i biblioteki
- Pliki konfiguracyjne
To rodzaj planu tworzenia Dockerowych kontenerów, który zapewnia spójne działanie aplikacji w różnych środowiskach.
Dlaczego automatyzować budowanie obrazów Docker?
Ręczne budowanie obrazów Docker może być powtarzalne i podatne na błędy. Właśnie tutaj przydaje się automatyzacja!
Dzięki zintegrowaniu budowania obrazów Docker z pipeline'em CI/CD za pomocą GitHub Actions zyskują Państwo:
- Spójność: Każde budowanie przebiega według tych samych kroków.
- Szybkość: Automatyczne budowanie jest szybsze niż ręczne.
- Niezawodność: Ograniczenie liczby błędów ludzkich.
- Integrację: Budowanie jest automatycznie uruchamiane po zmianach w kodzie.
To jedna z podstawowych praktyk współczesnego DevOps!
Dockerfile jako plan
Dockerfile to plik tekstowy zawierający wszystkie polecenia potrzebne do złożenia obrazu Docker. Można porównać go do przepisu.
Oto bardzo prosty przykład pliku Dockerfile:
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]Zrozumienie pliku Dockerfile
Przeanalizujmy prosty plik Dockerfile:
FROM alpine:latest: Określa obraz bazowy. Zaczynamy od małej dystrybucji Linuksa o nazwie Alpine.WORKDIR /app: Ustawia katalog roboczy wewnątrz obrazu.COPY . .: Kopiuje wszystkie pliki z katalogu projektu do katalogu/appwewnątrz obrazu.CMD ["echo", "Hello from Docker!"]: To polecenie zostanie uruchomione, gdy na podstawie tego obrazu zostanie uruchomiony kontener.
Ten plik znajduje się w katalogu głównym projektu.
Konfiguracja workflow
Aby budować obrazy Docker za pomocą GitHub Actions, należy utworzyć w repozytorium plik YAML (np. .github/workflows/docker-build.yml).
Plik ten definiuje workflow, czyli serię automatycznych kroków.
Podstawowy workflow budowania obrazu zwykle obejmuje:
- Pobranie kodu.
- Skonfigurowanie środowiska budowania obrazów Docker.
- Zbudowanie obrazu Docker.
Krok 1: Pobranie kodu
Pierwszym krokiem niemal każdego workflow GitHub Actions jest pobranie kodu repozytorium. Służy do tego akcja actions/checkout.
Klonuje ona repozytorium do runnera, udostępniając plik Dockerfile i kod aplikacji na potrzeby procesu budowania.
W pliku workflow wygląda to następująco:
- name: Checkout repository code
uses: actions/checkout@v4Krok 2: Konfiguracja Docker Buildx
Następnie należy skonfigurować środowisko budowania obrazów Docker. Zdecydowanie zalecana jest akcja docker/setup-buildx-action.
Buildx to komponent Docker rozszerzający możliwości budowania obrazów Docker i obsługujący zaawansowane funkcje, takie jak budowanie dla wielu platform.
Należy dodać ten krok do workflow:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3Krok 3: Budowanie obrazu Docker
Teraz najważniejsza część: budowanie obrazu! Służy do tego akcja docker/build-push-action.
Najważniejsze opcje:
context: .: Określa kontekst budowania (zwykle jest nim katalog główny repozytorium).push: false: Na razie obraz zostanie tylko zbudowany, bez wysyłania do rejestru. Wysyłanie omówimy w późniejszej lekcji.tags: my-app:latest: Przypisuje obrazowi nazwę i tag.
- name: Build and tag Docker image
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: my-app:latestPełny przykład workflow budowania
Oto kompletny workflow GitHub Actions do budowania obrazu Docker. Należy pamiętać, że ten kod YAML należy umieścić w pliku .github/workflows/docker-build.yml.
Ten workflow zostanie uruchomiony przy każdym push do repozytorium.
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:latestSzybki test
Sprawdźmy, jak dobrze rozumieją Państwo budowanie obrazów Docker za pomocą GitHub Actions.
Podsumowanie: budowanie obrazów Docker
Świetnie! Poznali już Państwo podstawy automatyzowania budowania obrazów Docker za pomocą GitHub Actions.
Omówiliśmy:
- Czym są obrazy Docker i dlaczego mają kluczowe znaczenie.
- Rolę pliku
Dockerfilejako planu obrazu. - Konfigurację podstawowego workflow GitHub Actions.
- Użycie najważniejszych akcji, takich jak
actions/checkout,docker/setup-buildx-actionidocker/build-push-action.
W następnej lekcji dowiedzą się Państwo, jak wysyłać zbudowane obrazy do rejestru kontenerów!
Często zadawane pytania
Czy lekcja „Budowanie obrazów Docker za pomocą Actions” jest bezpłatna?
Tak — pełny tekst „Budowanie obrazów Docker za pomocą Actions” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Budowanie obrazów Docker za pomocą Actions”?
Zautomatyzują Państwo proces budowania obrazów Docker dla aplikacji bezpośrednio w workflows GitHub Actions. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Budowanie obrazów Docker za pomocą Actions”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Budowanie obrazów Docker za pomocą Actions
- Wysyłanie obrazów do rejestrów
- Wdrażanie do Kubernetes za pomocą Actions
- Wykresy Helm i manifesty Kubernetes w CI/CD