# 开发模式:代码挂载 + 内部热重载,无需重建镜像即可生效(类似 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 dockerfile: Dockerfile container_name: ops-core-frontend volumes: - ./frontend:/app # 保留容器内 node_modules,避免被宿主机目录覆盖 - frontend_node_modules:/app/node_modules ports: - "3000:3000" environment: NODE_ENV: development NEXT_TELEMETRY_DISABLED: 1 # 开发模式:先装依赖(volume 首次为空),再 dev,代码变更热更新 command: sh -c "npm install && npm run dev" depends_on: - backend volumes: frontend_node_modules: