3 Commits
Author SHA1 Message Date
jianghaifeng 4c3d524eff Merge pull request 'Feature/deploy fix local bringup' (#1) from feature/deploy-fix-local-bringup into develop
Reviewed-on: #1
2026-10-16 06:35:34 +00:00
Zhou Weidong 4c4f64323a fix(worker): 补齐 prod 密钥与 CORS 映射以通过密钥校验
worker 的 application-prod.yml 没把 JWT_ADMIN_SECRET / JWT_APP_SECRET /
MEDIA_SIGNATURE_SECRET / CORS_ALLOWED_ORIGINS 映射成 fruitshorts.* 属性,
ProdSecretGuard 读到空值即拒绝启动,compose 里 worker 一直 Restarting。

按两个入口同一口径补齐映射:不写 dev 默认值,漏配仍 fail-fast;
并显式置 signature-required=true,与两个入口一致。

门禁:mvn test 全模块 BUILD SUCCESS(0 失败 0 错误,1 项 ffmpeg smoke 按用例设计跳过)。
2026-10-16 14:32:24 +08:00
Zhou Weidong 8b46e535c5 fix(deploy): 修正 PG18 数据卷挂载路径为 /var/lib/postgresql
docker-library/postgres 自 18 起把数据目录改成 /var/lib/postgresql/<major>/,
卷继续挂 /var/lib/postgresql/data 会被 entrypoint 判定为"残留数据"并拒绝启动;
表现为 db 容器反复 Restarting,依赖它的三个服务一起起不来。

改挂父目录后本地实测:docker compose up -d 正常,db 进入 healthy。
2026-10-16 14:32:24 +08:00
2 changed files with 13 additions and 1 deletions

No files matched your search

+2 -1
View File
@@ -24,7 +24,8 @@ services:
# 中文与印尼语内容需要 UTF-8(镜像默认已是 UTF8,这里显式一次)
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
volumes:
- db-data:/var/lib/postgresql/data
# PostgreSQL 18 起镜像把数据放在 /var/lib/postgresql/<major>/,卷必须挂到父目录
- db-data:/var/lib/postgresql
# 首次启动自动建表 + 造种子数据;顺序即文件名顺序(脚本本身幂等,可重复执行)
- ./sql/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql:ro
- ./sql/schema-phase1.sql:/docker-entrypoint-initdb.d/02-schema-phase1.sql:ro
@@ -11,12 +11,23 @@ spring:
timeout-per-shutdown-phase: 30s
fruitshorts:
jwt:
# worker 本身不签发/校验令牌,但 ProdSecretGuard 要求 prod 下密钥齐全;
# 不给 dev 默认值,漏配即启动失败(与两个入口同一口径)
admin-secret: ${JWT_ADMIN_SECRET:}
app-secret: ${JWT_APP_SECRET:}
media:
# 生产必开播放签名(与两个入口一致,fail-fast 也要求为 true)
signature-secret: ${MEDIA_SIGNATURE_SECRET:}
signature-required: true
transcode:
# 生产此进程必须真的跑转码
worker-enabled: true
# 生产按小时级重试间隔,避免坏片源把队列打满
poll-delay-ms: ${TRANSCODE_POLL_DELAY_MS:5000}
cors:
# worker 不对外提供接口,仅为通过 prod fail-fast 校验
allowed-origins: ${CORS_ALLOWED_ORIGINS:}
logging:
level: