53 lines
1.9 KiB
YAML
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: |