Sobes.tech
Junior

Kokia jūsų patirtis dirbant su Docker Compose?

sobes.tech AI

Atsakymas iš AI

Naudoju Docker Compose apibrėžti ir paleisti daugiakonteinerines programas. Turiu patirties:

  • Vietinės aplinkos kūrimas: docker-compose.yml sukūrimas, kad būtų galima paleisti visus būtinus paslaugas (backend, frontend, duomenų bazė, talpykla) vietiniam vystymuisi. Tai leidžia greitai sukurti izoliuotą aplinką nuo pagrindinės sistemos.
  • Testavimas: Docker Compose naudojimas testinėms aplinkoms su skirtingomis konfigūracijomis.
  • Diegimas Staging/Production: Nors produkcijai dažnai naudojami galingesni orkestratoriai (Kubernetes), pradiniuose etapuose ar mažesniuose projektuose naudoju Docker Compose diegimui Staging serveriuose.

Pavyzdžiai, kaip naudoti laukus docker-compose.yml:

  • services: Konteinerių grupės apibrėžimas.
  • image: Nurodyti Docker vaizdą.
  • build: Kurti vaizdą iš Dockerfile.
  • ports: Portų pervadinimas.
  • volumes: Tarpinių diskų montavimas duomenų saugojimui arba šaltinio kodo montavimui.
  • networks: Naudojamų tinklų apibrėžimas.
  • depends_on: Priklausomybių nustatymas tarp paslaugų.
  • environment: Kintamųjų perdavimas į konteinerį.

Paprastas konfigūracijos pavyzdys žiniatinklio programai ir duomenų bazei:

services:
  webapp:
    build: ./webapp # Statyti iš Dockerfile kataloge webapp
    ports:
      - "80:80" # Perkelti 80 prievadą iš hosto į konteinerį
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # Perduoti aplinkos kintamąjį
    depends_on:
      - db # Žiniatinklio programa priklauso nuo duomenų bazės

  db:
    image: postgres:13 # Naudoti PostgreSQL vaizdą
    volumes:
      - db_data:/var/lib/postgresql/data # Duomenų saugojimo tūris
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # Nurodyti pavadintą tūrį

Tipinės komandos:

docker compose up -d # Paleisti paslaugas fone
ndocker compose down # Sustabdyti ir ištrinti paslaugas
docker compose build # Kurti vaizdus
docker compose logs <service_name> # Peržiūrėti konkrečios paslaugos žurnalus
docker compose exec <service_name> <command> # Vykdyti komandą konteineryje

Moku naudoti Compose sintaksės versijas ir jų skirtumus. Taip pat žinau, kaip naudoti .env failus aplinkos kintamųjų valdymui ir kaip taikyti profilius skirtingų paslaugų rinkiniams paleisti.