JavaRush /Курси /Модуль 2: Fullstack /Створення Dockerfile для кожного сервісу

Створення Dockerfile для кожного сервісу

Модуль 2: Fullstack
Рівень 18 , Лекція 2
Відкрита

3.1 Створення Dockerfile для фронтенду (ReactJS)

На цьому етапі ми створимо Dockerfile для кожного з трьох сервісів нашого багатоконтейнерного додатку: фронтенду на ReactJS, бекенду на Python (Flask) та бази даних PostgreSQL. Dockerfile визначає інструкції щодо створення Docker-образу для кожного сервісу.

Створіть файл Dockerfile у директорії frontend:

Terminal

cd frontend
touch Dockerfile

Вміст Dockerfile для фронтенду:

Terminal

# Використовуємо базовий образ node
FROM node:14

# Встановлюємо робочу директорію
WORKDIR /app

# Копіюємо package.json і package-lock.json для встановлення залежностей
COPY package*.json ./

# Встановлюємо залежності
RUN npm install

# Копіюємо решту файлів проєкту
COPY . .

# Вказуємо порт 3000
EXPOSE 3000

# Запускаємо додаток
CMD ["npm", "start"]

Цей Dockerfile виконує наступні кроки:

  1. Використовує базовий образ node:14.
  2. Встановлює робочу директорію /app.
  3. Копіює файли package.json і package-lock.json.
  4. Встановлює залежності за допомогою npm install.
  5. Копіює всі файли проєкту у робочу директорію.
  6. Відкриває порт 3000 для доступу до додатку.
  7. Запускає додаток за допомогою npm start.

3.2 Створення Dockerfile для бекенда (Flask)

Створи файл Dockerfile у директорії backend:

Terminal

cd backend
touch Dockerfile

Вміст Dockerfile для бекенда:

dockerfile

# Використовуємо базовий образ python
FROM python:3.12

# Встановлюємо робочу директорію
WORKDIR /app

# Копіюємо requirements.txt для встановлення залежностей
COPY requirements.txt ./

# Встановлюємо залежності
RUN pip install --no-cache-dir -r requirements.txt

# Копіюємо інші файли проєкту
COPY . .

# Задаємо порт 5000
EXPOSE 5000

# Запускаємо додаток
CMD ["python", "run.py"]

Цей Dockerfile виконує такі кроки:

  1. Використовує базовий образ python:3.12.
  2. Встановлює робочу директорію /app.
  3. Копіює файл requirements.txt.
  4. Встановлює залежності за допомогою pip install.
  5. Копіює всі файли проєкту до робочої директорії.
  6. Відкриває порт 5000 для доступу до додатку.
  7. Запускає додаток за допомогою python run.py.

3.3 Створення Dockerfile для бази даних (PostgreSQL)

Для бази даних PostgreSQL ми будемо використовувати офіційний образ, тому створення власного Dockerfile не потрібне. Замість цього, ми налаштуємо PostgreSQL через docker-compose.yml.

3.4 Збірка та тестування Docker-образів

Після створення Dockerfile для фронтенду та бекенду, важливо протестувати їх збірку.

Збірка Docker-образу для фронтенду:

Terminal

cd frontend
docker build -t task_management_frontend .

Збірка Docker-образу для бекенду:

Terminal

cd ../backend
docker build -t task_management_backend .

Перевірка роботи контейнерів:

Запуск контейнера для фронтенду:

Terminal

docker run -p 3000:3000 task_management_frontend

Запуск контейнера для бекенду:

Terminal

docker run -p 5000:5000 task_management_backend

Перейдіть за адресою http://localhost:3000, щоб перевірити роботу фронтенду, і http://localhost:5000, щоб перевірити роботу бекенду.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ