2.2 KiB
2.2 KiB
项目变更日志 (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):- 流水线将负责:
- 从 OneDev 内置 Git 仓库检出代码。
- 从 OneDev 项目 Secrets 中获取敏感配置 (如数据库密码)。
- 动态生成
.env文件供docker-compose.yml使用。 - 在 Agent 所在的宿主机上本地构建后端和前端应用的 Docker 镜像。
- 使用项目根目录下的
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 + 脚本方案的产物)。