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.ymlfaylı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.