Files
3dtours/docker-compose.yml
T
2026-06-12 07:59:10 +07:00

53 lines
1.9 KiB
YAML

services:
mongo:
image: mongo:4.4 # Sử dụng phiên bản MongoDB cụ thể để đảm bảo tính ổn định
container_name: 3dtours_mongo
restart: always
ports:
- "27017:27017" # Mở cổng MongoDB ra ngoài (có thể bỏ nếu chỉ dùng nội bộ Docker)
volumes:
- mongo_data:/data/db # Lưu trữ dữ liệu MongoDB bền vững
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
redis:
image: redis:6-alpine # Sử dụng phiên bản Redis nhẹ
container_name: 3dtours_redis
restart: always
ports:
- "6379:6379" # Mở cổng Redis ra ngoài (có thể bỏ nếu chỉ dùng nội bộ Docker)
volumes:
- redis_data:/data # Lưu trữ dữ liệu Redis bền vững (tùy chọn)
app:
build:
context: ./backend # Đường dẫn image trên Gitea Registry của bạn
dockerfile: Dockerfile
container_name: 3dtours_app
restart: always
ports:
- "${PORT}:${PORT}" # Khớp cổng máy host với cổng bên trong container (ví dụ: 3000:3000)
volumes:
- uploads:/app/uploads # Lưu trữ các tệp ảnh panorama đã tải lên
- ./frontend:/frontend # Gắn thư mục frontend vào container để Node.js truy cập được qua ../frontend
environment:
# Biến môi trường cho ứng dụng Node.js
PORT: ${PORT}
MONGODB_URI: ${MONGODB_URI}
JWT_SECRET: ${JWT_SECRET}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
UPLOAD_DIR: ${UPLOAD_DIR}
NODE_ENV: ${NODE_ENV}
SYSTEM_HOST: ${SYSTEM_HOST}
ADDITIONAL_ALLOWED_ORIGINS: ${ADDITIONAL_ALLOWED_ORIGINS}
depends_on:
- mongo # Đảm bảo MongoDB khởi động trước
- redis # Đảm bảo Redis khởi động trước
command: node server.js
volumes:
mongo_data:
redis_data:
uploads: