fix(deploy): 按需重建容器,不再每次部署都重启 MySQL
`deploy.sh` 主流程里是 `$COMPOSE up -d --force-recreate`(不带服务名),所以每次 部署都会把所有服务重建一遍 —— 包括 mysql。mysql 重启期间应用连不上库,表现为 每次部署都有约 90 秒的 502(今天几次部署都踩到了)。 改为 `$COMPOSE up -d douyu-login`:只处理应用服务,且交给 compose 判断是否需要 重建(镜像或容器配置真的变了才重建)。这样: - 代码部署:应用镜像变了 → 只重建应用,mysql 完全不动; - .env 改动:compose 会检测到容器配置变化 → 重建应用,mysql 仍不动; - 什么都没变:不重建,零中断。 mysql 只在它自己的配置真的变了时才动(例如加 --default-time-zone 那次)。
This commit is contained in:
@@ -100,8 +100,11 @@ cmd_deploy() {
|
||||
|
||||
echo ""
|
||||
echo "正在启动服务..."
|
||||
# 重新创建应用容器,确保生产环境不会沿用旧的 reload 配置。
|
||||
$COMPOSE up -d --force-recreate
|
||||
# 只处理应用服务,按需重建:镜像或配置变了 compose 才会重建它。
|
||||
# 曾经这里是不带服务名的 `up -d --force-recreate`,会把 mysql 也一起重建 ——
|
||||
# 每次部署都有约 90 秒的 502(mysql 重启期间应用连不上库)。
|
||||
# 现在 mysql 只在它自己的配置真的变了时才动,代码部署不再影响数据库。
|
||||
$COMPOSE up -d douyu-login
|
||||
|
||||
echo ""
|
||||
echo "等待服务启动..."
|
||||
|
||||
Reference in New Issue
Block a user