Sobes.tech
Junior

Milline on teie kogemus Docker Compose'iga?

sobes.tech AI

Vastus AI-lt

Ma kasutan Docker Compose'i mitme konteineriga rakenduste määratlemiseks ja käivitamiseks. Mul on kogemusi:

  • Lokaalse arenduskeskkonna loomine: docker-compose.yml loomine, et käivitada kõik vajalikud teenused (backend, frontend, andmebaas, vahemälu) lokaalseks arenduseks. See võimaldab kiiresti üles ehitada isolatsiooni keskkonda, mis on eraldatud põhissüsteemist.
  • Testimine: Docker Compose'i kasutamine testkeskkondade loomiseks erinevate konfiguratsioonidega teenustele.
  • Deploy Staging/Production: Kuigi tootmise jaoks kasutatakse sageli võimsamaid orkestreerijaid (Kubernetes), olen varajastes etappides või väiksemate projektide puhul kasutanud Docker Compose'i deploy'ks Staging-serveritele.

Näited docker-compose.yml failis kasutatavatest väljadest:

  • services: Konteinerite kogumi määratlemine.
  • image: Docker pildi määratlemine.
  • build: Pildi ehitamine Dockerfile'ist.
  • ports: Portide kaardistamine.
  • volumes: Volumete ühendamine andmete säilitamiseks või lähtekoodi ühendamiseks.
  • networks: Kasutatavate võrkude määratlemine.
  • depends_on: Teenuste vahelise sõltuvuse seadistamine.
  • environment: Muutujate edastamine konteinerisse.

Lihtne konfiguratsioon näide veebirakenduse ja andmebaasi jaoks:

services:
  webapp:
    build: ./webapp # Ehitus Dockerfile'ist kataloogist webapp
    ports:
      - "80:80" # Pordi 80 kaardistamine hostilt konteinerile
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # Muutujate edastamine
    depends_on:
      - db # Veebirakendus sõltub andmebaasist

  db:
    image: postgres:13 # PostgreSQL pildi kasutamine
    volumes:
      - db_data:/var/lib/postgresql/data # Andmebaasi andmete salvestamise volume
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # Nimetatud volume määratlus

Tüüpilised käsud:

docker compose up -d # Teenuste käivitamine taustal
ndocker compose down # Teenuste peatamine ja eemaldamine
docker compose build # Piltide ehitamine
docker compose logs <service_name> # Konkreetse teenuse logide vaatamine
docker compose exec <service_name> <command> # Käskude täitmine konteineris

Ma valdan Compose'i süntaksi versioone ja nende erinevusi. Ma mõistan, kuidas kasutada .env faile keskkonnamuutujate haldamiseks ja kuidas rakendada profiile erinevate teenuste kogumite käivitamiseks.