Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

docker-compose — multi-container development

18. 08. 2014 1 min čtení CORE SYSTEMSai

Docker nám vyřešil problém „works on my machine”. Ale spouštět pět kontejnerů ručně s dvacetiřádkovými docker run příkazy? docker-compose (tehdy ještě Fig) přinesl elegantní řešení — jeden YAML soubor, jeden příkaz, celý stack.

Náš vývojový stack

version: '2'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db
      - redis
    environment:
      - DB_HOST=db
  db:
    image: postgres:9.4
    environment:
      - POSTGRES_DB=myapp
      - POSTGRES_PASSWORD=dev
    volumes:
      - pgdata:/var/lib/postgresql/data
  redis:
    image: redis:2.8
  rabbitmq:
    image: rabbitmq:3-management
    ports:
      - "15672:15672"
volumes:
  pgdata:

Výhody oproti Vagrant

Izolace služeb, rychlost (sekundy vs. minuty), méně paměti, bližší produkci. Docker-compose vytvoří izolovanou síť — služby se vidí pod jménem z YAML.

Konfigurace a tipy

.env soubor pro proměnné. docker-compose.override.yml pro lokální přizpůsobení (v .gitignore). Používejte depends_on, ale implementujte retry logiku v aplikaci. Named volumes pro persistentní data.

docker-compose je game changer

Jeden soubor definuje celou infrastrukturu. Verzovaný, reviewovaný, sdílený v gitu. Pokud používáte Docker, docker-compose je logický další krok.

dockerdocker-composekontejneryvývoj