meeting-app/docker-compose.yml

78 lines
1.6 KiB
YAML
Raw Normal View History

2026-01-05 17:41:57 +07:00
version: "3.8"
services:
# ===============================
# MongoDB
# ===============================
mongo:
image: mongo:6.0
container_name: meeting-mongo
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example123
volumes:
- mongo_data:/data/db
networks:
- meeting-net
# ===============================
# Backend
# ===============================
backend:
build:
context: ./meeting-backend
container_name: meeting-backend
restart: unless-stopped
env_file:
- ./meeting-backend/.env
environment:
- MONGO_URI=mongodb://root:example123@mongo:27017/meetingDB?authSource=admin
- CLIENT_URL=https://bkmeeting.soict.io
- PORT=5000
expose:
- "5000"
depends_on:
- mongo
networks:
- meeting-net
# ===============================
# Frontend
# ===============================
frontend:
build:
context: ./meeting-frontend
container_name: meeting-frontend
restart: unless-stopped
expose:
- "80"
networks:
- meeting-net
# ===============================
# Nginx Reverse Proxy (HTTPS)
# ===============================
nginx:
image: nginx:stable-alpine
container_name: meeting-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./certs:/etc/letsencrypt/live/bkmeeting.soict.io:ro
depends_on:
- backend
- frontend
networks:
- meeting-net
volumes:
mongo_data:
networks:
meeting-net:
driver: bridge