Co to jest Docker Compose?

Docker Compose to narzędzie, które umożliwia definiowanie i uruchamianie aplikacji złożonych z wielu kontenerów Docker. Dzięki plikom konfiguracyjnym YAML, takim jak docker-compose.yml czy docker-compose.prod.yml, można łatwo zdefiniować usługi, sieci i wolumeny, które są niezbędne do prawidłowego działania aplikacji.

Rola pliku docker-compose.prod.yml

Plik docker-compose.prod.yml jest specjalnie przeznaczony do uruchamiania aplikacji w środowisku produkcyjnym. Zawiera on wszystkie niezbędne ustawienia, które różnią się od tych używanych w środowisku deweloperskim. Oto niektóre z jego kluczowych funkcji:

  • Optymalizacja wydajności: W produkcji często stosuje się inne ustawienia, takie jak większa ilość pamięci RAM czy użycie cache.
  • Bezpieczeństwo: Wersja produkcyjna powinna mieć wyłączone niebezpieczne opcje, takie jak debugowanie czy testowe bazy danych.
  • Skalowalność: Możliwość łatwego skalowania usług, co jest kluczowe w przypadku dużego ruchu.

Jak skonfigurować docker-compose.prod.yml?

Oto przykładowa struktura pliku docker-compose.prod.yml:

version: '3.8'
services:
  web:
    image: myapp:latest
    ports:
      - "80:80"
    environment:
      - NODE_ENV=production
    networks:
      - mynetwork
  db:
    image: postgres:latest
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
    volumes:
      - db_data:/var/lib/postgresql/data
networks:
  mynetwork:
volumes:
  db_data:

W powyższym przykładzie definiujemy dwa serwisy: web i db. Serwis web jest naszą aplikacją, która nasłuchuje na porcie 80, podczas gdy db to baza danych PostgreSQL. Zauważ, że korzystamy z wolumenów do przechowywania danych bazy, co zapewnia ich trwałość.

Uruchamianie aplikacji w produkcji

Aby uruchomić aplikację z użyciem pliku docker-compose.prod.yml, wystarczy użyć komendy:

docker-compose -f docker-compose.prod.yml up -d

Opcja -d oznacza, że kontenery będą uruchamiane w trybie odłączonym (detached), co jest zalecane w środowisku produkcyjnym.

Podsumowanie

Docker Compose i plik docker-compose.prod.yml są nieocenionymi narzędziami w zarządzaniu aplikacjami w środowisku produkcyjnym. Dzięki nim można szybko i efektywnie uruchamiać złożone aplikacje, zapewniając jednocześnie odpowiednie ustawienia dotyczące wydajności, bezpieczeństwa i skalowalności.