Files
mqtt_power/LogBook.md
2025-05-23 15:12:29 +08:00

47 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目变更日志 (LogBook)
## 2025-05-23 (基于对话日期推断)
### CI/CD 方案最终确定与配置
* **CI/CD 平台选择**:
* 最终确定使用 **OneDev** 作为CI/CD平台以获得更佳的可视化管理和操作体验。
* 代码仓库将使用 **OneDev 内置的 Git 服务**,不再依赖外部 Gitea。
* **OneDev Agent 配置**:
* Agent 将在部署服务器上以 **Docker 容器模式运行**
* 采用 **Docker-out-of-Docker (DooD)** 模式,通过将宿主机的 `/var/run/docker.sock` 挂载到 Agent 容器,使 Agent 能够控制宿主机 Docker 来执行镜像构建和 `docker-compose` 操作。
* `DEPLOYMENT_GUIDE.md` 已更新,包含 Dockerized Agent 的详细配置步骤,包括数据持久化和作为服务运行的方法。
* **部署流水线 (`.onedev-buildspec.yml`)**:
* 流水线将负责:
1. 从 OneDev 内置 Git 仓库检出代码。
2. 从 OneDev 项目 Secrets 中获取敏感配置 (如数据库密码)。
3. 动态生成 `.env` 文件供 `docker-compose.yml` 使用。
4. 在 Agent 所在的宿主机上**本地构建**后端和前端应用的 Docker 镜像。
5. 使用项目根目录下的 `docker-compose.yml` 和本地构建的镜像,通过 `docker-compose up -d` 命令启动或更新所有服务 (MySQL, EMQX, Backend App, Frontend App)。
* **数据库自动初始化**:
* 修改了 `docker-compose.yml` 文件中 `mysql-db` 服务的配置。
* 通过卷挂载,将项目中的 `springboot-init-main/sql/mqtt_power.sql` 脚本映射到 MySQL 容器的 `/docker-entrypoint-initdb.d/init_schema.sql`
* 这将确保在 MySQL 容器首次启动且数据目录为空时,自动执行 SQL 脚本以创建所有必要的数据库表结构。
* **相关文件更新**:
* `DEPLOYMENT_GUIDE.md`:已全面更新以反映纯 OneDev 方案、Dockerized Agent 配置及数据库自动初始化。
* `.onedev-buildspec.yml`:已创建,定义了上述本地构建和部署的流水线。
* `docker-compose.yml`:已修改,支持数据库自动初始化脚本挂载。
* `deploy.sh`:已被删除 (原 Gitea + 脚本方案的产物)。
## 2024-08-13
* **调整 CI/CD 方案至 OneDev (本地构建)**:
* 用户反馈 OneDev builds 页面无内容,怀疑配置文件问题。
* 分析现有 `.onedev-buildspec.yml` 包含多个冲突的 Job 定义 (部分推送外部 registry部分本地构建部分通过 SSH 部署)。
* **决策**: 简化 `.onedev-buildspec.yml` 为单个 Job (`Build and Deploy mqtt_power on myagent`)。
* **新 Job 逻辑**:
1. 在用户指定的 OneDev Agent (`myagent`) 上运行。
2.`main``master` 分支的代码推送触发。
3. 检出代码。
4. 从 OneDev Job Secrets 生成 `.env` 文件,包含数据库和 MQTT 连接信息。
5. 使用项目根目录的 `docker-compose.yml` 在 Agent 本地构建后端 (`springboot-app`) 和前端 (`nextjs-app`) Docker 镜像。
6. 使用 `docker-compose up -d` 启动所有服务 (MySQL, EMQX, 后端应用, 前端应用)。
* **操作**: 完全重写了 `.onedev-buildspec.yml` 以实现上述逻辑。
* 强调了用户需要检查 Agent 名称匹配、OneDev Job Secrets 配置、`docker-compose.yml` 的构建上下文和镜像名、Agent 环境Docker, Docker Compose, sh/bash shell以及触发器分支的正确性。
---