CodeGym /Kurslar /Docker SELF /Hər bir xidmət üçün Dockerfile yaratmaq

Hər bir xidmət üçün Dockerfile yaratmaq

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

3.1 Frontend üçün Dockerfile yaradılması (ReactJS)

Bu mərhələdə biz çoxkonteynerli tətbiqimizin hər üç xidməti üçün Dockerfile faylını yaradacağıq: ReactJS-də frontend, Python (Flask)-da backend və PostgreSQL verilənlər bazası. Dockerfile hər bir xidmət üçün Docker image-in yaradılma qaydalarını təyin edir.

Frontend direktoriyasında Dockerfile faylını yaradın:

Terminal

cd frontend
touch Dockerfile

Frontend üçün Dockerfile məzmunu:

Terminal

# Node üçün əsas image istifadə olunur
FROM node:14
        
# İşçi direktoriyanı təyin edirik
WORKDIR /app
        
# Əlavələr quraşdırılması üçün package.json və package-lock.json fayllarını kopyalayırıq
COPY package*.json ./
        
# Əlavələri quraşdırırıq
RUN npm install
        
# Layihənin digər fayllarını kopyalayırıq
COPY . . 
        
# 3000 portunu təyin edirik
EXPOSE 3000
        
# Tətbiqi işə salırıq
CMD ["npm", "start"]

Bu Dockerfile aşağıdakı mərhələləri yerinə yetirir:

  1. Node:14 əsas image-dən istifadə edir.
  2. /app işçi direktoriyasını təyin edir.
  3. package.json və package-lock.json fayllarını kopyalayır.
  4. npm install istifadə edərək dependencies yükləyir.
  5. Layihənin bütün fayllarını işçi direktoriyaya kopyalayır.
  6. Tətbiqə giriş üçün 3000 portunu açır.
  7. npm start ilə tətbiqi işə salır.

3.2 Backend üçün Dockerfile yaradılması (Flask)

Backend direktoriyasına Dockerfile yaradın:

Terminal

cd backend
touch Dockerfile

Backend üçün Dockerfile məzmunu:

dockerfile

# python üçün baza imici istifadə edirik
FROM python:3.12
        
# İşçi direktoriyanı təyin edirik
WORKDIR /app
        
# Asılılıqları quraşdırmaq üçün requirements.txt faylını kopyalayırıq
COPY requirements.txt ./
        
# Asılılıqları quraşdırırıq
RUN pip install --no-cache-dir -r requirements.txt
        
# Layihənin digər fayllarını kopyalayırıq
COPY . . 
        
# 5000 portunu təyin edirik
EXPOSE 5000
        
# Tətbiqi işə salırıq
CMD ["python", "run.py"]

Bu Dockerfile aşağıdakı addımları yerinə yetirir:

  1. python:3.12 baza imicini istifadə edir.
  2. /app işçi direktoriyasını təyin edir.
  3. requirements.txt faylını kopyalayır.
  4. pip install vasitəsilə asılılıqları quraşdırır.
  5. Bütün layihə fayllarını işçi direktoriyaya kopyalayır.
  6. Tətbiqə giriş üçün 5000 portunu açır.
  7. python run.py vasitəsilə tətbiqi işə salır.

3.3 Məlumat bazası (PostgreSQL) üçün Dockerfile yaratmaq

PostgreSQL məlumat bazası üçün rəsmi image istifadə edəcəyik, buna görə öz Dockerfile-inizi yaratmaq tələb olunmur. Bunun əvəzinə, PostgreSQL-i docker-compose.yml vasitəsi ilə tənzimləyəcəyik.

3.4. Docker-image'lərin yığılması və test edilməsi

Frontend və backend üçün Dockerfile yaradılandan sonra, onları yığmağı test eləmək vacibdir.

Frontend üçün Docker-image yığmaq:

Terminal

cd frontend
docker build -t task_management_frontend .

Backend üçün Docker-image yığmaq:

Terminal

cd ../backend
docker build -t task_management_backend .

Kontainerlərin işləməsini yoxlamaq:

Frontend üçün kontainerin işə salınması:

Terminal

docker run -p 3000:3000 task_management_frontend

Backend üçün kontainerin işə salınması:

Terminal

docker run -p 5000:5000 task_management_backend

Frontend'in işləməsini yoxlamaq üçün http://localhost:3000 saytına, backend'in işləməsini yoxlamaq üçün isə http://localhost:5000 saytına keç.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION