# 开发模式:代码挂载 + 内部热重载,无需重建镜像即可生效(类似 K8s 仅更新配置/代码并滚动重启) # 使用方式: docker compose -f docker-compose.yml -f docker-compose.dev.yml up # 或: ./docker_dev.sh dev services: backend: build: context: . dockerfile: Dockerfile.backend container_name: ops-core-backend env_file: - .env volumes: - ./data:/app/data # 挂载代码:宿主机修改后由 uvicorn --reload 自动重启进程,无需重建容器 - ./backend:/app/backend ports: - "8000:8000" # 仅重启进程,不重启容器;代码变更由 reload 自动加载 command: uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 --reload frontend: build: context: ./frontend_spa dockerfile: Dockerfile.dev image: aitool-frontend-dev working_dir: /app container_name: ops-core-frontend volumes: - ./frontend_spa:/app - frontend_spa_node_modules:/app/node_modules # 宿主机 3001 避免与占用 3000 的进程冲突;访问 http://localhost:3001 ports: - "3000:3000" environment: NODE_ENV: development VITE_DEV_PROXY_TARGET: http://backend:8000 # 开发模式:命令在 Dockerfile.dev 的 CMD 中 depends_on: - backend volumes: frontend_spa_node_modules: