# ============================================ # IDC 设备管理系统 - 生产环境配置 # 从镜像仓库拉取预构建镜像,无 build 指令 # ============================================ version: '3.8' services: # ---------- 后端服务 ---------- backend: # 从镜像仓库拉取,需替换为实际的镜像名 image: ${BACKEND_IMAGE:-your-registry/idc-backend:latest} container_name: idc-backend volumes: # 配置映射(核心) - ./backend/.env:/app/.env # 数据持久化 - ./backend/uploads:/app/uploads - ./backend/logs:/app/logs - ./backend/backups:/app/backups - ./backend/temp:/app/temp env_file: - ./backend/.env environment: - NODE_ENV=production # 生产环境使用 Docker 内 MySQL 时,MYSQL_HOST 需设为 mysql # 使用远程 MySQL 时,保持 .env 中的配置 networks: - idc-network restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 30s # ---------- 前端(Nginx)服务 ---------- frontend: image: ${FRONTEND_IMAGE:-your-registry/idc-frontend:latest} pull_policy: always container_name: idc-frontend ports: - "80:80" networks: - idc-network depends_on: - backend restart: unless-stopped # ---------- MySQL 数据库 ---------- # 如需使用本地 MySQL 容器,取消下方注释 # mysql: # image: mysql:8.0 # container_name: idc-mysql # volumes: # - mysql_data:/var/lib/mysql # environment: # MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} # MYSQL_DATABASE: ${MYSQL_DATABASE:-idc_management} # MYSQL_USER: ${MYSQL_USER:-idc_user} # MYSQL_PASSWORD: ${MYSQL_PASSWORD} # networks: # - idc-network # restart: unless-stopped # healthcheck: # test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] # interval: 10s # timeout: 5s # retries: 5 networks: idc-network: driver: bridge # volumes: # mysql_data: