- 优化 make docs 命令: * 自动检查并安装 swag 工具 * 自动过滤 swag 生成过程中的警告信息 * 自动修复生成的 docs.go 文件中的兼容性问题(移除 LeftDelim 和 RightDelim 字段) - 优化 make docs-serve 命令: * 使用 Docker 运行 Swagger UI 容器,提供完整的 Swagger UI 界面 * 新增 make docs-stop 命令,用于停止 Swagger UI 容器 * 引入 SWAGGER_PORT 变量统一管理 Swagger UI 端口配置(默认 8081) - 修复应用内置 Swagger UI 无法加载文档问题: * 在 main.go 中导入生成的 docs 包(_ "yinli-api/doc/dev") * 修复 docs.go 文件中的兼容性问题 * 解决 "Failed to load API definition" 错误 - 更新 CHANGELOG.md,记录所有变更
4.5 KiB
4.5 KiB
更新日志
本文档记录了项目的所有重要变更,按照版本号倒序排列。
[未发布]
🆕 新增功能
- 端口配置变量化:在 Makefile 中引入
SERVER_PORT变量,统一管理应用端口配置 - 端口进程管理:新增
kill-port、kill-port-force、kill-$(SERVER_PORT)命令,方便管理端口占用 - 动态配置更新:支持在启动时自动更新配置文件中的端口和主机地址
🔧 改进优化
- 项目结构重构:将
@internal目录重命名为src,@pkg目录移至src/pkg,cmd/main.go移至src/main.go - 版本管理优化:Makefile 中的
VERSION变量自动从最新的 git tag 读取 - 端口检查逻辑优化:
- 支持检测 Docker 容器占用端口
- 提供自动停止 Docker 容器的选项
- 改进端口占用检测的准确性,过滤无效 PID
- Docker Compose 配置优化:
- 移除 MySQL 和 Redis 服务定义,改为使用宿主机服务
- 支持动态获取宿主机 IP 并配置
extra_hosts - 为 MySQL 服务添加优雅关闭配置(
stop_grace_period、stop_signal、init)
- 配置管理优化:
- 支持本地模式和 Docker 模式的动态切换
make dev/stage/prod使用localhostmake docker-up-*使用host.docker.internal
- Docker 命令命名优化:
- 将
docker-logs重命名为docker-logs-dev,保持与docker-logs-stage和docker-logs-prod的命名一致性 - 统一日志查看命令命名规范
- 将
- API 文档生成优化:
make docs命令自动检查并安装 swag 工具- 自动过滤 swag 生成过程中的警告信息
- 自动修复生成的
docs.go文件中的兼容性问题
- Swagger UI 服务优化:
make docs-serve使用 Docker 运行 Swagger UI 容器,提供完整的 Swagger UI 界面- 新增
make docs-stop命令,用于停止 Swagger UI 容器 - 引入
SWAGGER_PORT变量统一管理 Swagger UI 端口配置
🐛 问题修复
- 修复 Docker 模式下 SERVER_PORT 未生效问题:
- 将
PORT变量重命名为SERVER_PORT - 修复
sed命令无法处理空端口值的问题 - 在
main.go中增加端口为空检查
- 将
- 修复 Docker 容器连接宿主机服务问题:
- 修复 MySQL 连接问题(
bind-address和用户权限) - 修复 Redis 连接问题(
bind和protected-mode) - 修复 rootless Docker 的
host-gateway问题
- 修复 MySQL 连接问题(
- 修复 MySQL 容器无法正常停止问题:
- 增加优雅关闭时间到 60 秒
- 使用
init进程管理子进程 - 添加自动检测和重试机制
- 修复应用内置 Swagger UI 无法加载文档问题:
- 在
main.go中导入生成的 docs 包 - 修复
docs.go文件中的兼容性问题(移除不兼容的LeftDelim和RightDelim字段) - 解决 "Failed to load API definition" 错误
- 在
📚 文档更新
- 新增 CHANGELOG.md 文件,记录项目所有重要变更,按功能类型分类
- 添加 SERVER_PORT 配置说明,包括影响范围和修改方法
- 添加 Docker 容器连接宿主机服务的完整排查指南
- 添加端口进程管理说明
- 添加 Docker 权限问题解决方案
- 添加常见错误信息和排查步骤
- 清理项目中的 PDF 文件(PROJECT_SUMMARY.pdf、README.pdf)
[2025-11-29] - 项目开发阶段
版本管理
- Makefile 中的
VERSION变量从 git tag 自动读取(格式:20251129.1、20251129.2、20251129.3)
项目结构重构
- 将
@internal目录重命名为src - 将
@pkg目录移动到src/pkg - 将
cmd/main.go移动到src/main.go - 移除
cmd目录 - 更新所有文件引用路径
Docker 相关优化
- 支持 dev、stage、prod 三种环境的 Docker Compose 部署
- 优化 Docker 镜像拉取配置(支持中国大陆镜像源)
- 配置 Go 代理(
GOPROXY=https://goproxy.cn,direct) - 移除 Docker Compose 中的 MySQL 和 Redis 服务,改为使用宿主机服务
- 支持动态获取宿主机 IP 并配置
extra_hosts - 优化 MySQL 容器优雅关闭配置
端口配置优化
- 引入
SERVER_PORT变量统一管理端口配置 - 优化端口占用检查逻辑
- 新增端口进程管理命令
文档完善
- 完善 README.md 中的配置说明
- 添加 Docker 部署指南
- 添加常见问题解答
- 添加 SERVER_PORT 配置说明
版本说明
- 格式:
YYYYMMDD.N(例如:20251129.1) - 规则:日期 + 序号,同一天多次发布递增序号
- 获取方式:
git tag --sort=-version:refname | head -n 1