docs: 记一个部署坑 —— 重建镜像后 up -d 不一定换容器
2026-10-18 部署礼包修复时实际踩到:`docker compose build` 出了新镜像 (ID 变了),`docker compose up -d douyu-login` 只打了句 Started, 容器仍是上一版(ps 显示 Up 11 hours,容器里搜不到新函数),差点把 「没生效」报成「部署成功」。 - AGENTS 坑 #10:重建过镜像就 `up -d --force-recreate <服务名>` (必须带服务名,不带会把 mysql 一起重建),部署后核对镜像 ID 或 grep 容器内新代码。 - 部署清单同步改命令(顺带给 `docker compose run` 补上 -T 与 </dev/null, 同 AGENTS 坑 #5)。
This commit is contained in:
@@ -64,10 +64,13 @@ PY
|
||||
docker compose stop douyu-login
|
||||
|
||||
# 2) 跑迁移(实测 9 秒)
|
||||
docker compose run --rm douyu-login alembic upgrade head
|
||||
docker compose run --rm -T douyu-login alembic upgrade head </dev/null
|
||||
|
||||
# 3) 起新代码
|
||||
docker compose up -d douyu-login
|
||||
# ⚠️ **镜像重建过就必须 --force-recreate + 服务名**:2026-10-18 踩到
|
||||
# 「build 出了新镜像,up -d 只打了句 Started,容器还在跑旧镜像」。
|
||||
# 带服务名只会重建 app,不会连 mysql 一起重建(见 AGENTS 坑 #10)。
|
||||
docker compose up -d --force-recreate douyu-login
|
||||
```
|
||||
|
||||
**为什么先停应用**:迁移期间 `accounts.cookie` 还没回填完,此时旧代码在跑会
|
||||
|
||||
Reference in New Issue
Block a user