chore(deploy): 单容器项目名改为 inkwatch(容器名 inkwatch-app-1 / inkwatch-migrate-1)

改 name: pmon → inkwatch,让容器名与项目名一致。
★ 关键防呆:name 同时是**卷名派生源**,故 volumes 段显式锁定
  pg_data: {name: pmon_pg_data} / redis_data: {name: pmon_redis_data}。
  不锁的话 compose 会去找 inkwatch_pg_data 这套新空卷 = 清库。
实测:切换后卷仍只有 pmon_pg_data / pmon_redis_data(无 inkwatch_*),
devices=6 不变,migrate Exited(0),gateway/business 200。
镜像同步改名 pmon-all → inkwatch-all(docker tag 复用,不重建)。
This commit is contained in:
PMon Dev committed 2026-10-17 19:28:51 +08:00
1 parent ca47186615
commit 12433ccedf
1 file changed
+12 -3
+12 -3
View File
@@ -22,7 +22,12 @@
# 与方案 V4.0 第 11 章的关系:单容器是单机运维形态;将来若要水平扩容
# (多 gateway 实例),回到四容器路径按第 11 章扩,数据卷直接复用。
name: pmon
# 项目名 = 容器名前缀(inkwatch-app-1 / inkwatch-migrate-1)。
# ⚠️ 它是**卷名的派生源**——所以下面 volumes 段必须**显式锁定卷名**
# (name: pmon_pg_data),否则改名会让 compose 去找 inkwatch_pg_data
# 这套新空卷,等于把生产清库(四容器时代 name: pmon 就是同一层锚点)。
name: inkwatch
services:
# ---------- 单容器应用:四个进程一个容器 ----------
@@ -30,7 +35,7 @@ services:
build:
context: ..
dockerfile: deploy/Dockerfile.all
image: pmon-all:latest
image: inkwatch-all:latest
environment:
# ── 存储层(官方 postgres entrypoint 读;同时拼出 DATABASE_URL)──
POSTGRES_USER: ${POSTGRES_USER:-pmon}
@@ -105,7 +110,7 @@ services:
# 必然副作用,不能因为应用层不健康就被跳过(四容器路径里 migrate
# 也只 depends_on postgres healthy)。
migrate:
image: pmon-all:latest
image: inkwatch-all:latest
# ★ 必须共享 app 的网络命名空间:migrate 里连的是 -h 127.0.0.1,
# 它自己的命名空间里没有 postgres —— 少了这一行,pg_isready 会
# 无限循环(2026-10-17 首次真跑时抓到;四容器时代用服务名 postgres
@@ -127,5 +132,9 @@ services:
logging: *logging
volumes:
# ★ 显式卷名:与四容器路径共用同两个卷(pmon_pg_data / pmon_redis_data),
# 两条路径可随时互切、数据不动。**不要删掉 name:**,也不要改成 inkwatch_*。
pg_data:
name: pmon_pg_data
redis_data:
name: pmon_redis_data