CodeGym /Kurslar /Docker SELF /docker-compose.yml konfiqurasiya edilməsi və bütün servis...

docker-compose.yml konfiqurasiya edilməsi və bütün servislərin işə salınması

Docker SELF
Səviyyə , Dərs
Mövcuddur

4.1 Başlanğıc

Bu addımda biz docker-compose.yml faylını bütün servisləri işə salmaq üçün konfiqurasiya edəcəyik. docker-compose.yml faylı frontend, backend və verilənlər bazası üçün parametrləri, həmçinin şəbəkələr və həcm təyinatını əhatə edəcək.

Docker Compose versiyasının təyini

Docker Compose versiyasını təyin etməklə başlayırıq. Bu nümunədə biz 3-cü versiyadan istifadə edirik:

Yaml

version: '3'

4.2. Servislərin müəyyən edilməsi

Servis 1: Frontend (ReactJS)

Frontend üçün bir servis müəyyən edəcəyik ki, bu frontend qovluğundan yığılacaq və 3000 portunda əlçatan olacaq:

Yaml

services:
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    networks:
      - task-network

Servis 2: Backend (Flask)

Backend üçün bir servis müəyyən edəcəyik ki, bu backend qovluğundan yığılacaq, database servisinə asılı olacaq və 5000 portunda əlçatan olacaq:

Yaml

  backend:
    build: ./backend
    ports:
      - "5000:5000"
    depends_on:
      - database
    networks:
      - task-network
    environment:
      - DATABASE_URL=postgresql://taskuser:taskpassword@database:5432/taskdb

Burada:

  • depends_on: Göstərir ki, backend servisi database servisinə asılıdır, buna görə də backend işə salınmadan öncə database işə salınacaq.
  • environment: Databasə-ə qoşulmaq üçün mühit dəyişənlərini qurur.

Servis 3: Database (PostgreSQL)

PostgreSQL-nun rəsmi postgres:13 imicindən istifadə edərək database üçün bir servis müəyyən edəcəyik. Database yaratmaq və istifadəçi məlumatları üçün mühit dəyişənlərini quracağıq:

Yaml

  database:
    image: postgres:13
    environment:
      - POSTGRES_DB=taskdb
      - POSTGRES_USER=taskuser
      - POSTGRES_PASSWORD=taskpassword  
    networks:
      - task-network
    volumes:
      - db-data:/var/lib/postgresql/data

Burada:

  • environment: Konteyner işə salınarkən databasə və istifadəçi yaratmaq üçün mühit dəyişənlərini qurur.
  • volumes: Məlumatların daimi saxlanılması üçün db-data volumundan istifadə edir.

4.3 Şəbəkələrin və həcmələrin qurulması

Servislərimiz tərəfindən istifadə olunacaq şəbəkələri və həcmələri təyin edək:

Yaml

networks:
  task-network:
    driver: bridge
      
volumes:
  db-data:

Burada:

  • networks: task-network adlı şəbəkəni driver növü bridge olaraq təyin edir, hansı ki konteynerlər arasında əlaqə üçün istifadə olunacaq.
  • volumes: Verilənlər bazasının məlumatlarını saxlamaq üçün db-data həcmini təyin edir.

4.4 Bütöv docker-compose.yml faylı

İndi bütün hissələri bir faylda docker-compose.yml birləşdiririk:

Yaml

version: '3'

 services:
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    networks:
      - task-network
        
  backend:
    build: ./backend
    ports:
      - "5000:5000"
    depends_on:
      - database
    networks:
      - task-network
    environment:
      - DATABASE_URL=postgresql://taskuser:taskpassword@database:5432/taskdb
        
  database:
    image: postgres:13
    environment:
      - POSTGRES_DB=taskdb
      - POSTGRES_USER=taskuser
      - POSTGRES_PASSWORD=taskpassword
    networks:
      - task-network
    volumes:
      - db-data:/var/lib/postgresql/data
        
networks:
  task-network:
    driver: bridge
        
volumes:
  db-data:

Ayarların izahı

  • build: İmage yaratmaq üçün Dockerfile-ın yerləşdiyi qovluğu göstərir.
  • ports: Servislərə giriş üçün host portlarını açır.
  • depends_on: Servislərin başlama sırasını təmin edir.
  • environment: Servislər üçün ətraf mühit dəyişənlərini tənzimləyir.
  • networks: Konteynerlərin bir-birilə əlaqəsi üçün şəbəkələri müəyyən edir.
  • volumes: Data daimi saxlanması üçün volume müəyyən edir.

4.5 Tətbiqin işə salınması

İndi docker-compose.yml faylı tənzimlənəndən sonra, bütün xidmətləri bir komandadan istifadə edərək işə sala bilərik:

Terminal

docker compose up

Bu komanda frontend, backend və verilənlər bazası üçün konteynerləri yaradacaq və işə salacaq, docker-compose.yml faylında təyin olunmuş tənzimləmələrdən istifadə edərək.

İşə salmanı yoxlamaq

Konteynerləri işə salandan sonra, bütün xidmətlərin düzgün işlədiyinə əmin olun:

  1. Frontend: Brauzeri açın və frontend-in işlədiyini yoxlamaq üçün bu ünvana keçin: http://localhost:3000.
  2. Backend: Brauzeri açın və backend-in işlədiyini yoxlamaq üçün bu ünvana keçin: http://localhost:5000.
  3. Database: Verilənlər bazası konteynerinin işlədiyinə və backend ilə şəbəkə əlaqəsindən keçərək əlçatan olduğuna əmin olun.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION