Junior
Koje je vaše iskustvo sa Docker Compose?
sobes.tech АИ
Одговор од АИ
Docker Compose koristim za definisanje i pokretanje višekontejnerskih aplikacija. Iskustvo uključuje:
- Razvoj lokalnog okruženja: Kreiranje
docker-compose.ymlza pokretanje svih potrebnih servisa (backend, frontend, baza podataka, keš) za lokalni razvoj. Ovo omogućava brzo podizanje okruženja, izolovanog od glavnog sistema. - Testiranje: Korišćenje Docker Compose za kreiranje testnih okruženja sa različitim konfiguracijama servisa.
- Deploy na Staging/Produkciji: Iako se za produkciju često koriste moćniji orkestratori (Kubernetes), u ranim fazama ili za manje projekte koristio sam Docker Compose za deploy na Staging serverima.
Primeri korišćenja polja u docker-compose.yml:
services: Definisanje skupa kontejnera.image: Navođenje Docker slike.build: Izgradnja slike iz Dockerfile.ports: Mapiranje portova.volumes: Montiranje volumena za čuvanje podataka ili montiranje izvornog koda.networks: Definisanje korisničkih mreža.depends_on: Postavljanje zavisnosti između servisa.environment: Prenos promenljivih okruženja u kontejner.
Primer jednostavne konfiguracije za web aplikaciju i bazu podataka:
services:
webapp:
build: ./webapp # Izgradnja iz Dockerfile u direktorijumu webapp
ports:
- "80:80" # Mapiranje porta 80 hosta na port 80 kontejnera
environment:
DATABASE_URL: postgresql://user:password@db:5432/mydb # Prenos promenljive okruženja
depends_on:
- db # Web aplikacija zavisi od baze podataka
db:
image: postgres:13 # Korišćenje PostgreSQL slike
volumes:
- db_data:/var/lib/postgresql/data # Čuvanje podataka baze
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
volumes:
db_data: # Definisanje imenovanog volumena
Tipične komande:
docker compose up -d # Pokretanje servisa u pozadinskom režimu
docker compose down # Zaustavljanje i brisanje servisa
docker compose build # Izgradnja slika
docker compose logs <service_name> # Pregled logova određenog servisa
docker compose exec <service_name> <command> # Izvršavanje komande unutar kontejnera
Poznajem verzije sintakse Compose i njihove razlike. Razumem kako koristiti .env fajlove za upravljanje promenljivima okruženja i kako primenjivati profile za pokretanje različitih skupova servisa.