Junior
Aké máte skúsenosti s Docker Compose?
sobes.tech AI
Odpoveď od AI
Používam Docker Compose na definovanie a spúšťanie viackontajnerových aplikácií. Skúsenosti zahŕňajú:
- Vývoj lokálneho prostredia: Vytváranie
docker-compose.ymlna spustenie všetkých potrebných služieb (backend, frontend, databáza, cache) pre lokálny vývoj. To umožňuje rýchle nasadenie prostredia, izolovaného od hlavného systému. - Testovanie: Použitie Docker Compose na vytváranie testovacích prostredí s rôznymi konfiguráciami služieb.
- Nasadenie na staging/produkciu: Hoci pre produkciu sa často používajú výkonnejší orchestrátori (Kubernetes), v počiatočných fázach alebo pre menšie projekty som použil Docker Compose na nasadenie na staging servery.
Príklady použitia polí v docker-compose.yml:
services: Definovanie skupiny kontajnerov.image: Uvedenie používaného Docker obrazu.build: Skladanie obrazu z Dockerfile.ports: Mapovanie portov.volumes: Pripojenie volume pre uchovávanie dát alebo pripojenie zdrojového kódu.networks: Definovanie vlastných sietí.depends_on: Nastavenie závislostí medzi službami.environment: Prenos premenných prostredia do kontajnera.
Príklad jednoduchého nastavenia pre webovú aplikáciu a databázu:
services:
webapp:
build: ./webapp # Skladanie z Dockerfile v adresári webapp
ports:
- "80:80" # Mapovanie portu 80 hostiteľa na port 80 kontajnera
environment:
DATABASE_URL: postgresql://user:password@db:5432/mydb # Prenos premennej prostredia
depends_on:
- db # Webová aplikácia závisí od databázy
db:
image: postgres:13 # Použitie obrazu PostgreSQL
volumes:
- db_data:/var/lib/postgresql/data # Uloženie dát databázy
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
volumes:
db_data: # Definovanie pomenovaného volume
Typické príkazy:
docker compose up -d # Spustenie služieb na pozadí
docker compose down # Zastavenie a odstránenie služieb
docker compose build # Skladanie obrazov
docker compose logs <service_name> # Zobrazenie logov konkrétnej služby
docker compose exec <service_name> <command> # Spustenie príkazu v kontejnere
Ovládam verzie syntaxe Compose a ich rozdiely. Rozumiem, ako používať .env súbory na správu premenných prostredia a ako aplikovať profily na spustenie rôznych skupín služieb.