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