Sobes.tech
Junior

Docker Compose ilə bağlı təcrübəniz nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Çox konteynerli tətbiqləri təyin etmək və işlətmək üçün Docker Compose istifadə edirəm. Təcrübəm aşağıdakılardan ibarətdir:

  • Yerli mühitin inkişafı: docker-compose.yml faylını yaradaraq bütün lazımi xidmətləri (backend, frontend, verilənlər bazası, keşik) yerli inkişaf üçün işə salmaq. Bu, izolyasiya olunmuş mühiti sürətlə qurmağa imkan verir.
  • Test: Docker Compose istifadə edərək müxtəlif konfiqurasiyalara malik test mühitləri yaratmaq.
  • Staging/İstehsal mühitinə yerləşdirmə: İstehsal üçün daha güclü orkestratorlar (məsələn, Kubernetes) istifadə olunsa da, Docker Compose erkən mərhələlərdə və ya kiçik layihələr üçün staging serverlərinə yerləşdirmə üçün istifadə olunub.

docker-compose.yml faylında sahələrin istifadəsi nümunələri:

  • services: Konteynerlərin toplusunu təyin edir.
  • image: İstifadə olunan Docker imajını göstərir.
  • build: Dockerfile-dan imajın qurulması.
  • ports: Portların xəritələşdirilməsi.
  • volumes: Məlumatların saxlanması və ya mənbə kodunun montajı üçün həcm montajı.
  • networks: Xüsusi şəbəkələrin təyin olunması.
  • depends_on: Xidmətlər arasında asılılıqları qurur.
  • environment: Konteynerə mühit dəyişənlərinin ötürülməsi.

Web tətbiqi və verilənlər bazası üçün sadə konfiqurasiya nümunəsi:

services:
  webapp:
    build: ./webapp # webapp qovluğundakı Dockerfile-dan qurulur
    ports:
      - "80:80" # ev sahibi portunu konteynerin portuna xəritələşdirir
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # mühit dəyişəni
    depends_on:
      - db # Web tətbiqi verilənlər bazasına bağlıdır

  db:
    image: postgres:13 # PostgreSQL imajından istifadə
    volumes:
      - db_data:/var/lib/postgresql/data # məlumatların davamlılığı
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # adlandırılmış həcm təyin edir

Əsas əmrlər:

docker compose up -d # Xidmətləri arxa planda işə salır
docker compose down # Xidmətləri dayandırır və silir
docker compose build # İmajları qurur
docker compose logs <xidmət_adı> # Xidmətin loglarını göstərir
docker compose exec <xidmət_adı> <əmr> # Konteyner daxilində əmri icra edir

Compose sintaksisinin müxtəlif versiyalarını və onların fərqlərini bilirəm. .env fayllarını mühit dəyişənlərini idarə etmək üçün necə istifadə edəcəyimi və müxtəlif xidmət dəstlərini başlatmaq üçün profilləri necə tətbiq edəcəyimi anlayıram.