62 lines
3.6 KiB
YAML
62 lines
3.6 KiB
YAML
services:
|
||
# Сервис Фронтенда
|
||
frontend:
|
||
build:
|
||
context: ./ # Путь к Dockerfile фронтенда (предполагается, что Dockerfile лежит в корне dating-app-pwa)
|
||
dockerfile: Dockerfile # Имя Dockerfile для фронтенда
|
||
# ports: # <--- ЗАКОММЕНТИРОВАНО
|
||
# - "8080:80" # Пробрасываем порт 80 контейнера (Nginx) на порт 8080 хоста
|
||
restart: unless-stopped
|
||
depends_on: # Фронтенд зависит от бэкенда (для API запросов, хотя Nginx сам по себе запустится)
|
||
- backend
|
||
networks: # Подключаем к общей сети
|
||
- app-network
|
||
- proxy-net # <--- ИЗМЕНЕНО ИМЯ СЕТИ
|
||
|
||
# Сервис Бэкенда
|
||
backend:
|
||
build:
|
||
context: ./backend # Путь к Dockerfile бэкенда
|
||
dockerfile: Dockerfile # Имя Dockerfile для бэкенда
|
||
# ports: # <--- ЗАКОММЕНТИРОВАНО
|
||
# - "5000:5000" # Пробрасываем порт 5000 контейнера (Node.js) на порт 5000 хоста
|
||
environment:
|
||
# Передаем переменные окружения в контейнер бэкенда
|
||
- NODE_ENV=production # Убедись, что это установлено
|
||
- PORT=5000 # Порт внутри контейнера бэкенда
|
||
- MONGO_URI=mongodb://mongo_db:27017/dating_app_db # <--- ВАЖНО: используем имя сервиса mongo_db
|
||
- 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} # Добавлено
|
||
depends_on:
|
||
- mongo_db # Бэкенд зависит от базы данных
|
||
restart: unless-stopped
|
||
# volumes: # Для продакшена volumes с кодом обычно не используют, код должен быть в образе
|
||
# - ./backend:/usr/src/app # <--- ЗАКОММЕНТИРОВАНО для продакшена
|
||
# - /usr/src/app/node_modules # <--- ЗАКОММЕНТИРОВАНО для продакшена
|
||
networks:
|
||
- app-network
|
||
- proxy-net # <--- ИЗМЕНЕНО ИМЯ СЕТИ
|
||
|
||
# Сервис Базы Данных MongoDB
|
||
mongo_db:
|
||
image: mongo:latest # Используем официальный образ MongoDB
|
||
ports: # <--- Порт для mongo_db можно оставить, если нужен прямой доступ к базе с хост-машины сервера для отладки
|
||
- "27017:27017" # Но для безопасности лучше его закрыть, если он не нужен извне Docker-сети
|
||
volumes:
|
||
- mongo-data:/data/db # Сохраняем данные MongoDB в именованном вольюме
|
||
restart: unless-stopped
|
||
networks:
|
||
- app-network # MongoDB не обязательно должна быть в сети npm_proxy_network
|
||
|
||
# Определяем сети
|
||
networks:
|
||
app-network:
|
||
driver: bridge # Стандартный тип сети для docker-compose
|
||
proxy-net: # <--- ИЗМЕНЕНО ИМЯ СЕТИ
|
||
external: true # Указывает, что эта сеть создана NPM и уже существует
|
||
|
||
# Определяем именованные вольюмы
|
||
volumes:
|
||
mongo-data: # Для персистентного хранения данных MongoDB |