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:
cd frontend
touch Dockerfile
Frontend üçün Dockerfile məzmunu:
# 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:
- Node:14 əsas image-dən istifadə edir.
- /app işçi direktoriyasını təyin edir.
- package.json və package-lock.json fayllarını kopyalayır.
- npm install istifadə edərək dependencies yükləyir.
- Layihənin bütün fayllarını işçi direktoriyaya kopyalayır.
- Tətbiqə giriş üçün 3000 portunu açır.
- npm start ilə tətbiqi işə salır.
3.2 Backend üçün Dockerfile yaradılması (Flask)
Backend direktoriyasına Dockerfile yaradın:
cd backend
touch Dockerfile
Backend üçün Dockerfile məzmunu:
# 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:
- python:3.12 baza imicini istifadə edir.
- /app işçi direktoriyasını təyin edir.
- requirements.txt faylını kopyalayır.
- pip install vasitəsilə asılılıqları quraşdırır.
- Bütün layihə fayllarını işçi direktoriyaya kopyalayır.
- Tətbiqə giriş üçün 5000 portunu açır.
- 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:
cd frontend
docker build -t task_management_frontend .
Backend üçün Docker-image yığmaq:
cd ../backend
docker build -t task_management_backend .
Kontainerlərin işləməsini yoxlamaq:
Frontend üçün kontainerin işə salınması:
docker run -p 3000:3000 task_management_frontend
Backend üçün kontainerin işə salınması:
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ç.
GO TO FULL VERSION