Table
|
4f6f308d23
|
docs: 更新 README 和 PROJECT_SUMMARY 文档
- README.md 更新:
* 文档生成部分:添加详细的命令说明和使用方法
* 新增 SWAGGER_PORT 配置说明章节,包括变量定义、影响范围、修改方法
* 更新系统接口表格中的 Swagger 描述
* 说明应用内置 Swagger UI 的使用方法
- PROJECT_SUMMARY.md 更新:
* 添加项目概述描述
* 更新 API 文档部分,反映已实现的功能
* 更新构建和部署部分,添加端口配置和进程管理功能
* 详细分类 Make 命令,添加所有新命令说明
* 更新系统接口说明,添加 Swagger UI 访问地址
* 更新下一步建议,使用新的文档生成命令
* 新增"最新优化功能"章节,详细说明端口配置和文档优化
|
2025-11-29 20:13:00 +08:00 |
|
Table
|
84055fecfe
|
feat: 优化 API 文档生成和 Swagger UI 服务
- 优化 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,记录所有变更
|
2025-11-29 20:07:24 +08:00 |
|
Table
|
757abb799c
|
refactor: 将 docker-logs 重命名为 docker-logs-dev
- 将 Makefile 中的 docker-logs 命令重命名为 docker-logs-dev
- 保持与 docker-logs-stage 和 docker-logs-prod 的命名一致性
- 更新 README.md 中 3 处 docker-logs 引用为 docker-logs-dev
- 统一日志查看命令命名规范
|
2025-11-29 19:33:56 +08:00 |
|
Table
|
b1ddecc45e
|
docs: 添加 CHANGELOG.md 升级日志并清理 PDF 文件
- 新增 CHANGELOG.md 文件,记录项目所有重要变更
- 按功能类型分类(新增功能、改进优化、问题修复、文档更新)
- 包含未发布版本和 2025-11-29 开发阶段的变更记录
- 删除 PROJECT_SUMMARY.pdf 和 README.pdf 文件
|
2025-11-29 19:27:42 +08:00 |
|
Table
|
118d928a39
|
docs: 在 README 中添加 SERVER_PORT 配置说明
- 在配置说明章节新增 SERVER_PORT 配置小节
- 详细说明 SERVER_PORT 变量的定义位置(Makefile 第 20 行)
- 说明 SERVER_PORT 的影响范围:
* 配置文件中的 server.port(自动更新)
* Docker Compose 端口映射(dev/stage/prod)
* 端口占用检查(启动前检查)
* 端口进程管理命令(kill-port 相关)
- 提供修改方法和注意事项:
* 如何修改 Makefile 中的 SERVER_PORT
* 需要同步更新 Dockerfile 中的 EXPOSE 和健康检查 URL
* 需要重新生成 Docker Compose 文件
- 提供完整的使用示例(端口修改步骤)
|
2025-11-29 08:16:01 +08:00 |
|
Table
|
5424efd48a
|
fix: 修复 Docker 模式下 SERVER_PORT 未生效的问题
- 将 Makefile 中的 PORT 变量重命名为 SERVER_PORT,更清晰地表示应用端口
- 修复 docker-up-dev/stage/prod 命令中的 sed 命令:
* 将 $(PORT) 改为 $(SERVER_PORT)
* 修改 sed 命令从 s/[0-9]\+/... 改为 s|port:.*|port: $(SERVER_PORT)|
* 这样可以处理 config 文件中 port: 为空的情况
- 修复 dev/stage/prod 命令中的 sed 命令,统一使用新的格式
- 在 main.go 中增加端口为空检查:
* 在启动服务器前检查 cfg.Server.Port 是否为空
* 如果为空,输出明确的错误信息并退出,便于排查问题
问题原因:
- docker-up-dev 中使用的是 $(PORT) 而不是 $(SERVER_PORT)
- 当 port: 为空时,sed 的 s/[0-9]\+/... 无法匹配(需要数字才能匹配)
- 改为 s|port:.*|port: ...| 可以处理空值情况
|
2025-11-29 08:10:47 +08:00 |
|
Table
|
5abb3b7aa4
|
refactor: 将端口配置变量化并优化端口检查逻辑
- 在变量定义区添加 PORT := 1234,统一管理端口配置
- 将所有硬编码的 1234 端口替换为 $(PORT) 变量
- dev/stage/prod 命令的端口检查逻辑
- Docker Compose 文件生成中的端口配置
- kill-$(PORT) 快捷命令
- kill-port 和 kill-port-force 的帮助信息
- 优化 dev 命令的端口检查逻辑
- 支持检测 Docker 容器占用端口
- 提供自动停止 Docker 容器的选项
- 停止容器后自动清理残留的端口占用
- 改进端口占用检测的准确性
- 使用独立的命令检查(lsof/netstat/ss)
- 验证 PID 有效性,过滤无效值(如 '-')
- 提供更清晰的错误提示和解决方案
现在可以通过修改 Makefile 顶部的 PORT 变量来统一管理端口配置
|
2025-11-29 07:36:01 +08:00 |
|
Table
|
62482b371c
|
fix: 修复 Docker 容器连接宿主机 MySQL/Redis 问题并更新文档
主要改动:
1. Docker Compose 配置优化(dev/stage/prod):
- 移除 mysql 和 redis 服务定义,改为使用宿主机服务
- 更新 extra_hosts 使用宿主机实际 IP (192.168.1.11) 替代 host-gateway
- 解决 rootless Docker 网络连接问题
2. Config 配置文件更新(dev/stage/prod):
- 更新 database.host 和 redis.host 为 host.docker.internal
- 支持容器通过 host.docker.internal 访问宿主机服务
3. README.md 文档完善:
- 添加 Docker 容器连接宿主机 MySQL/Redis 的完整排查指南
- 添加 MySQL 容器无法正常停止的解决方案
- 更新 Docker Compose 环境说明
- 添加常见错误信息和排查步骤
问题修复:
- 修复容器无法连接宿主机 MySQL(bind-address 和用户权限问题)
- 修复容器无法连接宿主机 Redis(bind 和 protected-mode 问题)
- 修复 rootless Docker 的 host-gateway 问题(使用宿主机实际 IP)
相关配置要求:
- MySQL: bind-address = 0.0.0.0, root@'%' 用户权限
- Redis: bind = 0.0.0.0, protected-mode = no
|
2025-11-29 06:55:50 +08:00 |
|
Table
|
7e5572344b
|
fix: 修复 MySQL 容器在 rootless Docker 环境下无法正常停止的问题
主要改动:
- Docker Compose 配置优化:
* 为所有环境的 MySQL 服务添加 stop_grace_period: 60s(增加优雅关闭时间)
* 添加 stop_signal: SIGTERM(使用 SIGTERM 信号优雅停止)
* 添加 init: true(使用 init 进程管理子进程,避免僵尸进程)
- Makefile 改进:
* 所有 docker-down-* 命令添加自动重试机制
* 自动检测权限错误并重启 rootless Docker 服务
* 显示完整的 Docker Compose 进度信息(包括容器状态变化)
- README.md 更新:
* 添加 Docker 权限问题的详细解决方案
* 包括 rootless Docker 的特殊处理方法和自动重试机制说明
问题原因:
MySQL 容器在 rootless Docker 环境下停止时遇到权限问题,需要更长的优雅关闭时间来处理 InnoDB 数据文件。
解决方案:
1. 增加 stop_grace_period 到 60 秒,给 MySQL 足够时间优雅关闭
2. 使用 init 进程管理子进程,避免权限问题
3. 在 Makefile 中添加自动检测和重试机制,无需手动重启 Docker 服务
|
2025-11-29 06:18:17 +08:00 |
|
Table
|
d343ceca39
|
在 README.md 的“开发调试”部分添加端口进程管理说明
|
2025-11-29 05:03:19 +08:00 |
|
Table
|
f490a0dac5
|
将 @internal 目录重命名为 src 目录并做以下变更:
1、将 @pkg 目录移动到变更后的 src 目录;
2、将 @cmd 下的 @main.go 移动到 src 目录;
3、移除 cmd 目录
|
2025-11-29 04:58:41 +08:00 |
|
Table
|
46e3a7b2c0
|
修改 Makefile 中的 VERSION 值为从 git tag 中读取,即读取最新的 git tag 值,规则为 20251129.1、20251129.2
|
2025-11-29 04:39:00 +08:00 |
|
Table
|
d593fce014
|
init repo
|
2025-11-29 03:27:19 +08:00 |
|