# ============================================ # 云睿资产管理系统 - 生产环境配置 # 从镜像仓库拉取预构建镜像,无 build 指令 # 默认从 ghcr.io 拉取,可通过 BACKEND/FRONTEND_IMAGE 环境变量切换 # ============================================ version: '3.8' services: # ---------- 后端服务 ---------- backend: # 从 ghcr.io 拉取公开镜像,可通过 BACKEND_IMAGE 环境变量覆盖 image: ${BACKEND_IMAGE:-ghcr.io/xinmi/yunrui_asset-backend:latest} container_name: yunrui_asset-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: - yunrui_asset-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: # 从 ghcr.io 拉取公开镜像,可通过 FRONTEND_IMAGE 环境变量覆盖 image: ${FRONTEND_IMAGE:-ghcr.io/xinmi/yunrui_asset-frontend:latest} pull_policy: always container_name: yunrui_asset-frontend ports: - "80:80" networks: - yunrui_asset-network depends_on: - backend restart: unless-stopped # ---------- MySQL 数据库 ---------- # 如需使用本地 MySQL 容器,取消下方注释 # mysql: # image: mysql:8.0 # container_name: yunrui_asset-mysql # volumes: # - mysql_data:/var/lib/mysql # environment: # MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} # MYSQL_DATABASE: ${MYSQL_DATABASE:-yunrui_management} # MYSQL_USER: ${MYSQL_USER:-yunrui_user} # MYSQL_PASSWORD: ${MYSQL_PASSWORD} # networks: # - yunrui_asset-network # restart: unless-stopped # healthcheck: # test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] # interval: 10s # timeout: 5s # retries: 5 networks: yunrui_asset-network: driver: bridge # volumes: # mysql_data: