version: '3.8' services: maxkb-dev: # 使用生产镜像或本地构建的镜像 image: maxkb-local:latest # 如果需要本地构建,取消下面两行注释 # build: # context: ../ # dockerfile: installer/Dockerfile container_name: maxkb-dev ports: - "8080:8080" volumes: # 挂载Python源码实现热重载 - ../apps:/opt/maxkb-app/apps - ../main.py:/opt/maxkb-app/main.py - ../installer/maxkb.py:/opt/maxkb-app/maxkb.py # 挂载UI源码(用于前端开发) - ../ui/src:/opt/maxkb-app/ui/src - ../ui/public:/opt/maxkb-app/ui/public # 持久化数据 - maxkb_data:/opt/maxkb/data # 开发配置 - ./dev.env:/opt/maxkb-app/.env environment: # 开发环境变量 DJANGO_DEBUG: "True" PYTHONUNBUFFERED: "1" MAXKB_LOG_LEVEL: "DEBUG" # 数据库配置(使用内置的PostgreSQL) MAXKB_DB_HOST: "127.0.0.1" MAXKB_DB_PORT: "5432" MAXKB_DB_NAME: "maxkb" MAXKB_DB_USER: "root" MAXKB_DB_PASSWORD: "Password123@postgres" # Redis配置(使用内置的Redis) MAXKB_REDIS_HOST: "127.0.0.1" MAXKB_REDIS_PORT: "6379" MAXKB_REDIS_PASSWORD: "Password123@redis" # 使用默认的启动命令,让容器内的所有服务正常启动 # command 留空使用镜像默认的 entrypoint networks: - maxkb-network # 独立的前端开发服务器(可选) frontend-dev: image: node:20-alpine container_name: maxkb-frontend-dev working_dir: /app volumes: - ../ui:/app - /app/node_modules # 防止覆盖node_modules ports: - "5173:5173" # Vite开发服务器 - "5174:5174" # Chat界面开发服务器 environment: - VITE_APP_BASE_URL=http://localhost:8080 command: > sh -c " npm config set registry https://registry.npmmirror.com && npm install && npm run dev " networks: - maxkb-network volumes: maxkb_data: networks: maxkb-network: driver: bridge