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
|
d593fce014
|
init repo
|
2025-11-29 03:27:19 +08:00 |
|