Sobes.tech
Junior

Jaké máte zkušenosti s Docker Compose?

sobes.tech AI

Odpověď od AI

Používám Docker Compose k definování a spuštění vícekonténerových aplikací. Mám zkušenosti s:

  • Vývojem místního prostředí: Vytvořením souboru docker-compose.yml pro spuštění všech potřebných služeb (backend, frontend, databáze, cache) pro místní vývoj. To umožňuje rychle nasadit izolované prostředí.
  • Testováním: Použitím Docker Compose k vytvoření testovacích prostředí s různými konfiguracemi služeb.
  • Nasazením na staging/produkci: Ačkoliv se pro produkci často používají výkonnější orchestrátory (například Kubernetes), Docker Compose byl použit v raných fázích nebo pro malé projekty pro nasazení na stagingové servery.

Příklady použití polí v docker-compose.yml:

  • services: Definice sady kontejnerů.
  • image: Určení používaného Docker obrazu.
  • build: Sestavení obrazu z Dockerfile.
  • ports: Mapování portů.
  • volumes: Připojení svazků pro ukládání dat nebo připojení zdrojového kódu.
  • networks: Definice vlastních sítí.
  • depends_on: Nastavení závislostí mezi službami.
  • environment: Přenos proměnných prostředí do kontejneru.

Příklad jednoduché konfigurace pro webovou aplikaci a databázi:

services:
  webapp:
    build: ./webapp # Sestavení z Dockerfile v adresáři webapp
    ports:
      - "80:80" # Mapování portu 80 hostitele na port 80 kontejneru
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # Proměnná prostředí
    depends_on:
      - db # Web závisí na databázi

  db:
    image: postgres:13 # Použití obrazu PostgreSQL
    volumes:
      - db_data:/var/lib/postgresql/data # Uložení dat
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # Definice pojmenovaného svazku

Typické příkazy:

docker compose up -d # Spuštění služeb na pozadí
docker compose down # Zastavení a odstranění služeb
docker compose build # Sestavení obrazů
docker compose logs <název služby> # Zobrazení logů konkrétní služby
docker compose exec <název služby> <příkaz> # Spuštění příkazu uvnitř kontejneru

Jsem obeznámen s různými verzemi syntaxe Compose a jejich rozdíly. Chápu, jak používat .env soubory k řízení proměnných prostředí a jak aplikovat profily pro spuštění různých sad služeb.