Add V2 local dev compose
This commit is contained in:
@@ -27,3 +27,20 @@
|
||||
- 给用户、团队、交接和评审看的文档统一使用中文。
|
||||
- `extracted/` 里的机器抽取文档可以保留原始语言或工程化表达,优先服务开发检索。
|
||||
- 旧代码只在领域边界匹配时复用,不把旧的“答疑资产审核模型”硬套到新的“知识库权限问答模型”上。
|
||||
|
||||
## 本地开发启动
|
||||
|
||||
阶段二已经提供本地开发编排:
|
||||
|
||||
```bash
|
||||
cd ai_knowledge_base_v2
|
||||
docker compose -f docker-compose.dev.yml up --build
|
||||
```
|
||||
|
||||
默认访问地址:
|
||||
|
||||
- 用户端 H5:`http://127.0.0.1:5173/`
|
||||
- 后端 API:`http://127.0.0.1:8100/api/health`
|
||||
- MySQL:`127.0.0.1:3307`
|
||||
|
||||
开发阶段 mock 短信验证码为 `123456`。
|
||||
|
||||
7
ai_knowledge_base_v2/apps/backend/.dockerignore
Normal file
7
ai_knowledge_base_v2/apps/backend/.dockerignore
Normal file
@@ -0,0 +1,7 @@
|
||||
.env
|
||||
.venv/
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
.pytest_cache/
|
||||
.mypy_cache/
|
||||
.ruff_cache/
|
||||
15
ai_knowledge_base_v2/apps/backend/Dockerfile
Normal file
15
ai_knowledge_base_v2/apps/backend/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV PYTHONDONTWRITEBYTECODE=1
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
COPY . .
|
||||
|
||||
EXPOSE 8100
|
||||
|
||||
CMD ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8100"]
|
||||
@@ -26,6 +26,15 @@
|
||||
|
||||
## 本地启动
|
||||
|
||||
方式一:使用 V2 统一编排。
|
||||
|
||||
```bash
|
||||
cd ai_knowledge_base_v2
|
||||
docker compose -f docker-compose.dev.yml up --build
|
||||
```
|
||||
|
||||
方式二:本地 Python 直接启动。
|
||||
|
||||
```bash
|
||||
cd ai_knowledge_base_v2/apps/backend
|
||||
python -m venv .venv
|
||||
@@ -39,7 +48,5 @@ uvicorn app.main:app --reload --host 127.0.0.1 --port 8100
|
||||
|
||||
## 下一步
|
||||
|
||||
- 补 Alembic 初始迁移脚本。
|
||||
- 补聊天会话和消息接口。
|
||||
- 补管理员登录接口。
|
||||
- 接入 Redis 替换内存短信验证码和 Token 黑名单。
|
||||
|
||||
5
ai_knowledge_base_v2/apps/user-client/.dockerignore
Normal file
5
ai_knowledge_base_v2/apps/user-client/.dockerignore
Normal file
@@ -0,0 +1,5 @@
|
||||
node_modules/
|
||||
dist/
|
||||
.env
|
||||
.env.local
|
||||
*.tsbuildinfo
|
||||
12
ai_knowledge_base_v2/apps/user-client/Dockerfile
Normal file
12
ai_knowledge_base_v2/apps/user-client/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
||||
FROM node:22-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm ci
|
||||
|
||||
COPY . .
|
||||
|
||||
EXPOSE 5173
|
||||
|
||||
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"]
|
||||
@@ -15,6 +15,15 @@
|
||||
|
||||
## 本地启动
|
||||
|
||||
方式一:使用 V2 统一编排。
|
||||
|
||||
```bash
|
||||
cd ai_knowledge_base_v2
|
||||
docker compose -f docker-compose.dev.yml up --build
|
||||
```
|
||||
|
||||
方式二:本地 Node 直接启动。
|
||||
|
||||
```bash
|
||||
cd ai_knowledge_base_v2/apps/user-client
|
||||
npm install
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# 阶段二记录:本地开发编排
|
||||
|
||||
日期:2026-07-06
|
||||
|
||||
## 本次目标
|
||||
|
||||
补齐 V2 本地开发编排,让 MySQL、后端和用户端 H5 可以一起启动,降低后续开发和测试的环境成本。
|
||||
|
||||
## 已完成
|
||||
|
||||
- 新增 `ai_knowledge_base_v2/docker-compose.dev.yml`。
|
||||
- 新增 MySQL 8.4 服务:
|
||||
- 容器名:`ai_kb_v2_mysql`
|
||||
- 数据库:`ai_knowledge_base_v2`
|
||||
- 用户:`ai_kb`
|
||||
- 本机端口:`3307`
|
||||
- 新增后端 Dockerfile:
|
||||
- 启动前执行 `alembic upgrade head`
|
||||
- 后端端口:`8100`
|
||||
- 新增用户端 Dockerfile:
|
||||
- Vue H5 dev server 端口:`5173`
|
||||
- 更新 V2 根目录、后端、用户端 README。
|
||||
|
||||
## 默认访问地址
|
||||
|
||||
- 用户端 H5:`http://127.0.0.1:5173/`
|
||||
- 后端健康检查:`http://127.0.0.1:8100/api/health`
|
||||
- MySQL:`127.0.0.1:3307`
|
||||
|
||||
## 使用方式
|
||||
|
||||
```bash
|
||||
cd ai_knowledge_base_v2
|
||||
docker compose -f docker-compose.dev.yml up --build
|
||||
```
|
||||
|
||||
## 当前边界
|
||||
|
||||
- 当前编排面向本地开发,不是生产部署方案。
|
||||
- MySQL root 密码和业务密码都是本地开发默认值,生产环境必须更换。
|
||||
- 后端仍使用 mock 短信验证码 `123456`。
|
||||
- 真实飞书和真实大模型尚未接入。
|
||||
|
||||
## 验证记录
|
||||
|
||||
- `docker compose -f docker-compose.dev.yml config --quiet` 已通过。
|
||||
- `git diff --check` 已通过。
|
||||
- 尝试执行 `docker compose -f docker-compose.dev.yml build backend user-client`,Dockerfile 和构建上下文已正常进入构建流程;由于当前环境拉取 Docker Hub 基础镜像速度过慢,等待数分钟后人工中断,未判定为代码构建失败。
|
||||
@@ -27,3 +27,4 @@
|
||||
| `2026-07-06-decision-register.md` | 开发决策登记表,集中记录用户明确决策和默认工程决策。 |
|
||||
| `2026-07-06-phase2-backend-foundation.md` | 阶段二后端基础工程第一批记录。 |
|
||||
| `2026-07-06-phase2-user-client.md` | 阶段二用户端 Vue 3 H5 第一批记录。 |
|
||||
| `2026-07-06-phase2-dev-compose.md` | 阶段二本地开发编排记录。 |
|
||||
|
||||
54
ai_knowledge_base_v2/docker-compose.dev.yml
Normal file
54
ai_knowledge_base_v2/docker-compose.dev.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8.4
|
||||
container_name: ai_kb_v2_mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: rootpass
|
||||
MYSQL_DATABASE: ai_knowledge_base_v2
|
||||
MYSQL_USER: ai_kb
|
||||
MYSQL_PASSWORD: ai_kb
|
||||
TZ: Asia/Shanghai
|
||||
command:
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_unicode_ci
|
||||
ports:
|
||||
- "3307:3306"
|
||||
volumes:
|
||||
- ai_kb_v2_mysql_data:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uai_kb -pai_kb --silent"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 20
|
||||
|
||||
backend:
|
||||
build:
|
||||
context: ./apps/backend
|
||||
container_name: ai_kb_v2_backend
|
||||
environment:
|
||||
APP_ENV: docker
|
||||
DEBUG: "true"
|
||||
DATABASE_URL: mysql+pymysql://ai_kb:ai_kb@mysql:3306/ai_knowledge_base_v2?charset=utf8mb4
|
||||
JWT_SECRET_KEY: local-dev-secret-change-before-production
|
||||
MOCK_SMS_ENABLED: "true"
|
||||
MOCK_SMS_CODE: "123456"
|
||||
AUTO_CREATE_TABLES: "false"
|
||||
ports:
|
||||
- "8100:8100"
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
|
||||
user-client:
|
||||
build:
|
||||
context: ./apps/user-client
|
||||
container_name: ai_kb_v2_user_client
|
||||
environment:
|
||||
VITE_API_BASE_URL: http://127.0.0.1:8100/api
|
||||
ports:
|
||||
- "5173:5173"
|
||||
depends_on:
|
||||
- backend
|
||||
|
||||
volumes:
|
||||
ai_kb_v2_mysql_data:
|
||||
Reference in New Issue
Block a user