2025-05-21 22:13:09 +07:00
|
|
|
|
services:
|
|
|
|
|
# Сервис Фронтенда
|
|
|
|
|
frontend:
|
|
|
|
|
build:
|
|
|
|
|
context: ./ # Путь к Dockerfile фронтенда (предполагается, что Dockerfile лежит в корне dating-app-pwa)
|
|
|
|
|
dockerfile: Dockerfile # Имя Dockerfile для фронтенда
|
2025-05-21 22:26:53 +07:00
|
|
|
|
# ports: # <--- ЗАКОММЕНТИРОВАНО
|
|
|
|
|
# - "8080:80" # Пробрасываем порт 80 контейнера (Nginx) на порт 8080 хоста
|
2025-05-21 22:13:09 +07:00
|
|
|
|
restart: unless-stopped
|
|
|
|
|
depends_on: # Фронтенд зависит от бэкенда (для API запросов, хотя Nginx сам по себе запустится)
|
|
|
|
|
- backend
|
|
|
|
|
networks: # Подключаем к общей сети
|
|
|
|
|
- app-network
|
2025-05-21 22:32:20 +07:00
|
|
|
|
- proxy-net # <--- ИЗМЕНЕНО ИМЯ СЕТИ
|
2025-05-21 22:13:09 +07:00
|
|
|
|
|
|
|
|
|
# Сервис Бэкенда
|
|
|
|
|
backend:
|
|
|
|
|
build:
|
|
|
|
|
context: ./backend # Путь к Dockerfile бэкенда
|
|
|
|
|
dockerfile: Dockerfile # Имя Dockerfile для бэкенда
|
2025-05-21 22:26:53 +07:00
|
|
|
|
# ports: # <--- ЗАКОММЕНТИРОВАНО
|
|
|
|
|
# - "5000:5000" # Пробрасываем порт 5000 контейнера (Node.js) на порт 5000 хоста
|
2025-05-21 22:13:09 +07:00
|
|
|
|
environment:
|
|
|
|
|
# Передаем переменные окружения в контейнер бэкенда
|
2025-05-21 22:26:53 +07:00
|
|
|
|
- NODE_ENV=production # Убедись, что это установлено
|
2025-05-21 22:13:09 +07:00
|
|
|
|
- PORT=5000 # Порт внутри контейнера бэкенда
|
|
|
|
|
- MONGO_URI=mongodb://mongo_db:27017/dating_app_db # <--- ВАЖНО: используем имя сервиса mongo_db
|
2025-05-21 23:48:27 +07:00
|
|
|
|
- JWT_SECRET=${JWT_SECRET} # Передаем JWT_SECRET из .env файла хоста
|
|
|
|
|
- CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} # Добавлено
|
|
|
|
|
- CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} # Добавлено
|
|
|
|
|
- CLOUDINARY_API_SECRET=${CLOUDINARY_API_SECRET} # Добавлено
|
2025-05-21 22:13:09 +07:00
|
|
|
|
depends_on:
|
|
|
|
|
- mongo_db # Бэкенд зависит от базы данных
|
|
|
|
|
restart: unless-stopped
|
2025-05-21 22:26:53 +07:00
|
|
|
|
# volumes: # Для продакшена volumes с кодом обычно не используют, код должен быть в образе
|
|
|
|
|
# - ./backend:/usr/src/app # <--- ЗАКОММЕНТИРОВАНО для продакшена
|
|
|
|
|
# - /usr/src/app/node_modules # <--- ЗАКОММЕНТИРОВАНО для продакшена
|
2025-05-21 22:13:09 +07:00
|
|
|
|
networks:
|
|
|
|
|
- app-network
|
2025-05-21 22:32:20 +07:00
|
|
|
|
- proxy-net # <--- ИЗМЕНЕНО ИМЯ СЕТИ
|
2025-05-21 22:13:09 +07:00
|
|
|
|
|
|
|
|
|
# Сервис Базы Данных MongoDB
|
|
|
|
|
mongo_db:
|
|
|
|
|
image: mongo:latest # Используем официальный образ MongoDB
|
2025-05-21 22:26:53 +07:00
|
|
|
|
# ports: # <--- Порт для mongo_db можно оставить, если нужен прямой доступ к базе с хост-машины сервера для отладки
|
|
|
|
|
# - "27017:27017" # Но для безопасности лучше его закрыть, если он не нужен извне Docker-сети
|
2025-05-21 22:13:09 +07:00
|
|
|
|
volumes:
|
|
|
|
|
- mongo-data:/data/db # Сохраняем данные MongoDB в именованном вольюме
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
networks:
|
2025-05-21 22:26:53 +07:00
|
|
|
|
- app-network # MongoDB не обязательно должна быть в сети npm_proxy_network
|
2025-05-21 22:13:09 +07:00
|
|
|
|
|
|
|
|
|
# Определяем сети
|
|
|
|
|
networks:
|
|
|
|
|
app-network:
|
|
|
|
|
driver: bridge # Стандартный тип сети для docker-compose
|
2025-05-21 22:32:20 +07:00
|
|
|
|
proxy-net: # <--- ИЗМЕНЕНО ИМЯ СЕТИ
|
2025-05-21 22:26:53 +07:00
|
|
|
|
external: true # Указывает, что эта сеть создана NPM и уже существует
|
2025-05-21 22:13:09 +07:00
|
|
|
|
|
|
|
|
|
# Определяем именованные вольюмы
|
|
|
|
|
volumes:
|
|
|
|
|
mongo-data: # Для персистентного хранения данных MongoDB
|