Junior
Milyen tapasztalata van a Docker Compose-szal?
sobes.tech MI
Válasz az MI-től
A Docker Compose-t használom többkonténeres alkalmazások meghatározására és futtatására. Tapasztalatom a következőket foglalja magában:
- Helyi fejlesztői környezet kialakítása:
docker-compose.ymlfájl létrehozása a szükséges összes szolgáltatás (backend, frontend, adatbázis, cache) indításához helyi fejlesztéshez. Ez lehetővé teszi egy elszigetelt környezet gyors létrehozását. - Tesztelés: Docker Compose használata tesztkörnyezetek létrehozására különböző konfigurációkkal.
- Staging/gyártási környezetbe való telepítés: Bár a gyártáshoz gyakran erősebb orkestrátorokat (pl. Kubernetes) használnak, a Docker Compose-t korai szakaszokban vagy kis projektekhez használtam staging szerverekre való telepítéshez.
Példák a docker-compose.yml mezők használatára:
services: Szolgáltatásokat tartalmazó konténerek halmazának meghatározása.image: A Docker kép megadása.build: A Dockerfile-ból történő képépítés.ports: Porttérképezés.volumes: Volumenek csatolása adatok tárolására vagy forráskód csatolására.networks: Egyedi hálózatok definiálása.depends_on: Szolgáltatások közötti függőségek beállítása.environment: Környezeti változók átadása a konténernek.
Egyszerű konfiguráció példája egy webalkalmazáshoz és egy adatbázishoz:
services:
webapp:
build: ./webapp # A Dockerfile-ból a webapp könyvtárban
ports:
- "80:80" # A host 80-as portját a konténer 80-as portjára térképezi
environment:
DATABASE_URL: postgresql://user:password@db:5432/mydb # Környezeti változó
depends_on:
- db # A webalkalmazás a adatbázistól függ
db:
image: postgres:13 # A PostgreSQL kép használata
volumes:
- db_data:/var/lib/postgresql/data # Adatok tárolása
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
volumes:
db_data: # Névvel ellátott volumen definiálása
Tipikus parancsok:
docker compose up -d # Szolgáltatások indítása háttérben
docker compose down # Szolgáltatások leállítása és törlése
docker compose build # Képek építése
docker compose logs <szolgáltatás_neve> # Egy adott szolgáltatás naplóinak megtekintése
docker compose exec <szolgáltatás_neve> <parancs> # Parancs végrehajtása a konténerben
Ismerem a Compose szintaxis különböző verzióit és azok különbségeit. Megértem, hogyan kell .env fájlokat használni a környezeti változók kezelésére, és hogyan lehet profilokat alkalmazni különböző szolgáltatkészletek indítására.