# Docker 基础环境使用说明 ## 1. 用途 `compose.yaml` 用于启动智保通本地开发所需的 MySQL 8 和 Redis 7。 该文件只负责基础设施,不负责导入业务数据,也不负责启动后端、H5 或管理后台。容器启动后,仍需回到项目根目录,按照根目录 `README.md` 的“首次初始化”顺序执行数据和知识库初始化脚本。 第二、第三阶段使用的 Milvus 不包含在本文件中,请使用已经安装好的本地 Milvus。 ## 2. 容器与连接信息 | 服务 | 容器名称 | 地址 | 账号 | 密码 | |---|---|---|---|---| | MySQL 8 | `zhibaotong-mysql` | `127.0.0.1:3306` | `root` | `mysql147258` | | Redis 7 | `zhibaotong-redis` | `127.0.0.1:6379` | 无 | `redis147258` | 第二、第三阶段的 `scripts/init-databases.ps1` 和 `scripts/init-databases.sh` 默认使用容器名 `zhibaotong-mysql`,与本 compose 文件保持一致。 ## 3. 启动基础环境 先启动 Docker Desktop,然后在项目根目录执行: ```bash docker compose -f database/compose.yaml up -d ``` Windows PowerShell、macOS 和 Linux 使用相同命令。 首次运行可能需要下载 MySQL 和 Redis 镜像。查看容器状态: ```bash docker compose -f database/compose.yaml ps ``` 当 MySQL 和 Redis 的状态均为 `healthy` 后,再执行根目录 `README.md` 中的首次初始化命令。 `docker compose ps` 还应显示 MySQL 的 `0.0.0.0:3306->3306/tcp` 端口映射。如果没有该映射,通常是本机已有 MySQL 占用了 3306。请先停止本机原有 MySQL 服务,再重新执行上面的 Docker 启动命令;不要让本机 MySQL 与 Docker MySQL 同时占用 3306。 ## 4. backend/.env 配置 使用本 compose 文件时,`backend/.env` 中的公共连接配置应与下面保持一致: ```dotenv MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=mysql147258 REDIS_URL=redis://:redis147258@127.0.0.1:6379/0 ``` 各阶段使用的数据库名称如下: | 阶段 | Core 数据库 | Agent 数据库 | Analytics 数据库 | |---|---|---|---| | 第一阶段 | `insurance_s1_core` | `insurance_s1_agent` | `insurance_s1_analytics` | | 第二阶段 | `insurance_s2_core` | `insurance_s2_agent` | `insurance_s2_analytics` | | 第三阶段 | `insurance_s3_core` | `insurance_s3_agent` | `insurance_s3_analytics` | 请根据当前分支填写对应的三个 `MYSQL_*_DATABASE` 配置。 ## 5. 停止与再次启动 停止容器但保留数据: ```bash docker compose -f database/compose.yaml stop ``` 再次启动: ```bash docker compose -f database/compose.yaml start ``` MySQL 和 Redis 数据保存在 Docker 命名卷中。不要执行 `docker compose down -v`,该命令会删除本地数据库和 Redis 数据。 ## 6. 已存在同名容器 如果本机已经存在 `zhibaotong-mysql` 或 `zhibaotong-redis`,并且能够正常使用,可以继续使用已有容器,不需要重复执行 `docker compose up`。 如需改用本 compose 文件,应先自行确认旧容器中的数据是否需要保留,再处理同名容器,避免误删现有数据。