Serverovny.cz/Články/Containers a Docker

Implementace CI/CD pipeline s využitím Dockeru: Krok za krokem

Podrobný průvodce nastavením Continuous Integration a Continuous Deployment pomocí Docker kontejnerů pro Serverovny.cz.

700 slov
7 minut čtení
27. 10. 2022
Filip Procházka

Úvod do světa CI/CD a Dockeru

Vítejte ve světě, kde se vývojáři a IT specialisté snaží zrychlit proces nasazení aplikací, zlepšit kvalitu kódu a minimalizovat chyby. Pokud jste někdy slyšeli o termínech jako Continuous Integration (CI) a Continuous Deployment (CD), pak víte, jak důležité jsou tyto praktiky v agilním vývoji softwaru. A co kdybychom vám řekli, že s pomocí Dockeru můžete tyto procesy posunout na zcela novou úroveň?

Docker je revoluční technologie, která umožňuje balit aplikace do kontejnerů. Tyto kontejnery jsou přenosné, izolované a snadno spravovatelné, což z nich činí ideální nástroj pro implementaci CI/CD pipeline. Ale nebojte se! Neztratíme se v technických detailech. Tento článek vás provede krok za krokem celým procesem nastavení CI/CD pipeline s použitím Dockeru. Ať už jste začátečník nebo pokročilý uživatel, máme pro vás něco zajímavého!

Co je to CI/CD?

Než se pustíme do praxe, pojďme si ujasnit, co vlastně CI a CD znamenají:

  • Continuous Integration (CI) je proces, při kterém se kód pravidelně integruje do hlavní větve projektu. Tím se zajistí, že všechny změny jsou testovány ihned po jejich přidání.
  • Continuous Deployment (CD) jde ještě dál. Je to proces automatického nasazení nových verzí aplikace do produkčního prostředí ihned po úspěšném testování.

Systémy CI/CD umožňují rychlejší a efektivnější vývoj a provoz aplikací, což v dnešní době znamená konkurenční výhodu.

Proč použít Docker?

Docker přináší několik výhod, které usnadňují implementaci CI/CD:

  1. Izolace: Každý kontejner běží nezávisle na ostatních, což znamená, že vaše aplikace nebude ovlivněna změnami v jiných projektech.
  2. Přenositelnost: Kontejnery mohou běžet jak na lokálním počítači, tak na cloudových serverech bez nutnosti konfigurace.
  3. Rychlost: Vytváření a nasazení kontejnerů je rychlé a efektivní díky zabalené aplikaci se všemi závislostmi.

Krok 1: Instalace Dockeru

Než budeme moci začít s naším CI/CD pipeline, potřebujeme mít nainstalovaný Docker. Postupujte podle následujících kroků:

  1. Stáhněte si instalátor Dockeru ze stránek Dockeru.
  2. Nainstalujte ho podle pokynů pro váš operační systém (Windows/Mac/Linux).
  3. Po instalaci otevřete terminál a zadejte příkaz docker --version, abyste ověřili, že je Docker správně nainstalován.

Krok 2: Vytvoření Dockerfile

Nyní je čas vytvořit Dockerfile, což je skript pro sestavení vašeho kontejneru. Vytvořte nový soubor s názvem Dockerfile ve svém projektovém adresáři a přidejte následující obsah:

Použití oficiálního Node.js image jako základního obrazu

t FROM node:14

Nastavení pracovního adresáře

WORKDIR /app

Kopírování package.json a package-lock.json

cOPY package*.json ./

Instalace závislostí

RUN npm install

Kopírování zbytku kódu aplikace

cOPY . .

Exponování portu 3000

a EXPOSE 3000

Spuštění aplikace

CMD ["npm", "start"]


Tento příklad používá Node.js, ale stejným způsobem můžete vytvořit *Dockerfile* pro jakoukoli jinou technologii.

Krok 3: Sestavení Docker obrazu

Jakmile máte připravený Dockerfile, můžete vytvořit obraz vašeho kontejneru pomocí následujícího příkazu:

docker build -t myapp .

Tímto příkazem vytvoříte obraz s názvem myapp, který bude obsahovat vaši aplikaci a všechny její závislosti.

Krok 4: Nasazení kontejneru

Nyní můžete spustit svůj kontejner pomocí příkazu:

docker run -p 3000:3000 myapp

Tento příkaz spustí váš kontejner a mapuje port 3000 na hostitelském systému na port 3000 uvnitř kontejneru. Vaši aplikaci tedy můžete vidět na adrese http://localhost:3000.

Krok 5: Nastavení GitHub Actions pro CI/CD

GitHub Actions je skvělý nástroj pro automatizaci CI/CD procesů. Pojďme nastavit jednoduchou akci pro naši aplikaci:

  1. Vytvořte adresář .github/workflows ve vašem repozitáři.
  2. Vytvořte nový soubor s názvem ci-cd.yml a přidejte následující obsah:
ame: CI/CD Pipeline
a:on:
push:
branches:
- main 
jobs:
build:
runs-on: ubuntu-latest 
stages:
build:
runs-on: ubuntu-latest
actions/checkout@v2;
docker/build-push-action@v2:
instructions:
builder-instruction:
docker build -t myapp .;
docker run -p 3000:3000 myapp;
deply-app;
docker push myapp;
actions/setup-node@v2;
pm install;
pm test;
failure-output; 
github-actions; 
devops; 
testing; 
build-process; 
integration;
actions/checkout@v2;
build; 
docker-image;
npm install;
integration-test; 
yarn build;
driver;
github-action; 
github-token; 
vault-tokens;\
github-actions;
actions/setup-node@v2;
echo "Deploy completed";
echo "Build completed";
echo "Testing completed";
echo "Success!"

Tato akce se spustí při každém pushnutí do hlavní větve vašeho repozitáře a provede sestavení vaší aplikace a její nasazení do produkčního prostředí.

Krok 6: Testování pipeline

Jakmile máte vše nastaveno, proveďte změnu v kódu vaší aplikace (například změňte text na úvodní stránce) a pushněte změny na GitHub. Sledujte záložku „Actions“ ve vašem repozitáři, kde uvidíte průběh vaší CI/CD pipeline. Pokud vše proběhne hladce, měli byste být schopni vidět změny na své webové stránce prakticky okamžitě!

Závěr - Co dál?

Gratulujeme! Nyní máte plně funkční CI/CD pipeline s využitím Dockeru! To vám nejen ušetří čas při nasazení aplikací, ale také zvýší kvalitu vašeho kódu tím, že budete mít stále aktuální verze v produkci. Nebojte se experimentovat s různými technologiemi a postupy. Pokud vás zajímají další tipy na optimalizaci vašeho vývojového procesu nebo chcete znát více o dalších nástrojích v oblasti DevOps, nezapomeňte sledovat naše další články na Serverovny.cz! Tak šťastné kódování!

34095 přečtení článku
460 lajků
27. 10. 2022
Filip Procházka
  • CI/CD

  • Docker

  • Continuous Integration

  • Continuous Deployment

  • DevOps

  • GitHub Actions

  • Dockerfile

  • kontejnerizace

  • automatizace nasazení

  • vývoj softwaru

O autorovi

Filip Procházka

Realitní investor a developer s portfoliem nemovitostí v hodnotě přes 100 milionů korun. Začínal jako realitní makléř, dnes vlastní několik bytových domů a komerčních prostor. Je propagátorem strategií "house hacking" a "house flipping". Na blogu sdílí své zkušenosti s pasivním příjmem z nemovitostí a tipy pro začínající realitní investory.

Dotazy k článku