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, чтобы проверить работу бекенда.

3
Задача
Модуль 2: Fullstack, 18 уровень, 2 лекция
Недоступна
Создание Dockerfile для React-приложения
Создание Dockerfile для React-приложения
3
Задача
Модуль 2: Fullstack, 18 уровень, 2 лекция
Недоступна
Dockerfile для Flask-бекенда
Dockerfile для Flask-бекенда
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ