58 lines
2.2 KiB
Bash
58 lines
2.2 KiB
Bash
|
|
#!/bin/sh
|
|||
|
|
# docker/entrypoint.sh —— photo-live-server 单镜像多角色入口(P5-prep Task 1)。
|
|||
|
|
# 用法:docker run photo-live-server[:tag] <role> [args]
|
|||
|
|
# api-cn node services/api/dist/main-cn.js(国内 API:写路径 + 公开读)
|
|||
|
|
# api-ov node services/api/dist/main-ov.js(海外 API:副本读 + 互动 + inbox)
|
|||
|
|
# worker node services/worker/dist/main.js(sharp 变体流水线 + 发布事务)
|
|||
|
|
# sync node services/sync/dist/main.js(outbox 发送 + 对账 + 统计回传,双库直连)
|
|||
|
|
# migrate-deploy prisma migrate deploy(区域参数见下;一次性 docker run --rm 使用)
|
|||
|
|
# seed-admin 首次部署引导:写入/确认 admin 账号(ADMIN_ACCOUNT/ADMIN_PASSWORD env)
|
|||
|
|
# migrate-deploy 区域定位(cn 库 / ov 库是两份独立 schema,各自迁移):
|
|||
|
|
# migrate-deploy cn | ov | all —— 显式参数优先,缺省读 MIGRATE_REGION env,再缺省 all。
|
|||
|
|
# cn 侧服务器通常只需 cn;但 cn 侧 sync 进程直连 ov 库,ov 库迁移由 ov 侧执行——
|
|||
|
|
# all 仅供演练环境(单机双库仿真)使用。
|
|||
|
|
set -e
|
|||
|
|
|
|||
|
|
ROLE="${1:-api-cn}"
|
|||
|
|
if [ "$#" -gt 0 ]; then shift; fi
|
|||
|
|
|
|||
|
|
case "$ROLE" in
|
|||
|
|
api-cn)
|
|||
|
|
exec node services/api/dist/main-cn.js
|
|||
|
|
;;
|
|||
|
|
api-ov)
|
|||
|
|
exec node services/api/dist/main-ov.js
|
|||
|
|
;;
|
|||
|
|
worker)
|
|||
|
|
exec node services/worker/dist/main.js
|
|||
|
|
;;
|
|||
|
|
sync)
|
|||
|
|
exec node services/sync/dist/main.js
|
|||
|
|
;;
|
|||
|
|
seed-admin)
|
|||
|
|
exec node services/api/dist/scripts/seed-admin.js
|
|||
|
|
;;
|
|||
|
|
migrate-deploy)
|
|||
|
|
REGION="${1:-${MIGRATE_REGION:-all}}"
|
|||
|
|
echo "[entrypoint] migrate-deploy region=${REGION}"
|
|||
|
|
case "$REGION" in
|
|||
|
|
cn|all)
|
|||
|
|
echo "[entrypoint] prisma migrate deploy (db-cn: DATABASE_URL_CN)"
|
|||
|
|
prisma migrate deploy --schema=packages/db-cn/prisma/schema.prisma
|
|||
|
|
;;
|
|||
|
|
esac
|
|||
|
|
case "$REGION" in
|
|||
|
|
ov|all)
|
|||
|
|
echo "[entrypoint] prisma migrate deploy (db-ov: DATABASE_URL_OV)"
|
|||
|
|
prisma migrate deploy --schema=packages/db-ov/prisma/schema.prisma
|
|||
|
|
;;
|
|||
|
|
esac
|
|||
|
|
echo "[entrypoint] migrate-deploy done."
|
|||
|
|
;;
|
|||
|
|
*)
|
|||
|
|
echo "[entrypoint] unknown role: $ROLE" >&2
|
|||
|
|
echo "usage: entrypoint.sh {api-cn|api-ov|worker|sync|migrate-deploy [cn|ov|all]|seed-admin}" >&2
|
|||
|
|
exit 64
|
|||
|
|
;;
|
|||
|
|
esac
|