feat(deploy): 财务上线数据阶段编排与运维加固
- 新增 deploy/post-deploy.sh:回填 → 业务配置 → 同步 → 验收四阶段编排,支持 --only/--dry-run/窗口参数 - 新增 tools 镜像与 scripts/verify-finance-launch.sql(15 项上线验收) - 验收口径:成本闸门二选一、要求已过账凭证、备用金支出关联、成本覆盖 WARN - 加固:参数校验、工具镜像每次刷新、docker run 兜底超时、迁移前缀探测、验收失败退出码 2 - 工具镜像预建 /app/data,消除日志 EACCES - 回填后与 restore-db 恢复后自动 VACUUM (ANALYZE),修复订单列表分页 COUNT 全表扫描(41 万单实测 27s → 0.17s) - 文档:41 万单同步用 7 天窗 + 180s 超时;回填/恢复后刷新统计
This commit is contained in:
@@ -141,6 +141,40 @@ services:
|
||||
volumes:
|
||||
- ./apps/backend/data:/app/data
|
||||
|
||||
# 财务运维工具容器:跑 scripts/ 下的回填/同步脚本。
|
||||
#
|
||||
# 生产 backend 镜像 `npm prune --omit=dev` 且只 COPY dist,没有 tsx 与 scripts/,
|
||||
# 所以回填脚本必须用这个镜像执行。默认不随 `up` 启动(profiles: tools)。
|
||||
#
|
||||
# 用法:
|
||||
# docker compose --profile tools run --rm --no-deps tools npm run revenue:backfill -- --dryRun
|
||||
# 或者直接用编排脚本:
|
||||
# bash deploy/post-deploy.sh --dry-run
|
||||
tools:
|
||||
profiles: ["tools"]
|
||||
image: ${TOOLS_IMAGE:-order-site/tools:latest}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: deploy/docker/tools.Dockerfile
|
||||
args:
|
||||
BASE_REGISTRY: ${BASE_REGISTRY:-docker.m.daocloud.io}
|
||||
DEBIAN_MIRROR: ${DEBIAN_MIRROR:-mirrors.aliyun.com}
|
||||
NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com}
|
||||
restart: "no"
|
||||
env_file:
|
||||
- .env
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
TZ: ${TZ:-Asia/Shanghai}
|
||||
DATABASE_URL: ${DATABASE_URL:-postgres://postgres:postgres@postgres:5432/order_site}
|
||||
DATABASE_SSL: ${DATABASE_SSL:-false}
|
||||
# 回填按批提交,单条语句可能比 Web 请求慢;这里比后端默认值放宽。
|
||||
DATABASE_STATEMENT_TIMEOUT_MS: ${DATABASE_STATEMENT_TIMEOUT_MS:-60000}
|
||||
DATA_ROOT: /app/data
|
||||
logging: *json-log-rotation
|
||||
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
|
||||
Reference in New Issue
Block a user