部署优化
This commit is contained in:
@@ -29,6 +29,7 @@ usage() {
|
||||
选项:
|
||||
--no-build 不构建镜像,直接使用服务器已有镜像
|
||||
--images PATH 先 docker load 指定镜像 tar,并自动跳过本机构建
|
||||
--tag TAG 使用指定镜像 tag,并写入 .env.docker 的 IMAGE_TAG
|
||||
--no-seed 不执行生产 seed
|
||||
--init-db 调用 scripts/prod-init-db.sh 清空业务数据并初始化生产数据,仅限全新库或明确重置
|
||||
--skip-backup 与 --init-db 一起使用,跳过 prod-init-db 的备份
|
||||
@@ -37,7 +38,7 @@ usage() {
|
||||
|
||||
示例:
|
||||
./scripts/deploy-first.sh
|
||||
./scripts/deploy-first.sh --images thebet365-images.tar
|
||||
./scripts/deploy-first.sh --images thebet365-images-v1.2.3.tar --tag v1.2.3
|
||||
./scripts/deploy-first.sh --no-build
|
||||
./scripts/deploy-first.sh --init-db
|
||||
EOF
|
||||
@@ -54,6 +55,10 @@ while [ $# -gt 0 ]; do
|
||||
NO_BUILD=true
|
||||
shift 2
|
||||
;;
|
||||
--tag)
|
||||
set_deploy_image_tag "${2:?缺少 --tag 参数值}"
|
||||
shift 2
|
||||
;;
|
||||
--no-seed)
|
||||
RUN_SEED=false
|
||||
shift
|
||||
@@ -86,6 +91,14 @@ require_docker
|
||||
ensure_env_file || exit 1
|
||||
validate_prod_env "$ALLOW_DEFAULT_SECRETS"
|
||||
|
||||
if [ -n "$IMAGE_TAR" ] && [ -z "${DEPLOY_IMAGE_TAG:-}" ]; then
|
||||
inferred_tag="$(infer_image_tag_from_tar "$IMAGE_TAR")"
|
||||
if [ -n "$inferred_tag" ]; then
|
||||
set_deploy_image_tag "$inferred_tag"
|
||||
log "从镜像包文件名推断 tag: $inferred_tag"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$IMAGE_TAR" ]; then
|
||||
load_image_tar "$IMAGE_TAR"
|
||||
fi
|
||||
@@ -96,6 +109,7 @@ if [ "$NO_BUILD" = false ]; then
|
||||
build_app_images
|
||||
else
|
||||
log "跳过镜像构建,使用服务器已有镜像"
|
||||
require_images_for_current_tag
|
||||
fi
|
||||
|
||||
run_prisma_migrations
|
||||
@@ -106,7 +120,7 @@ fi
|
||||
|
||||
log "启动 api / player / admin"
|
||||
compose up -d api player admin
|
||||
wait_for_service_running api 120
|
||||
wait_for_stack_ready
|
||||
|
||||
if [ "$INIT_DB" = true ]; then
|
||||
init_args=()
|
||||
@@ -116,9 +130,11 @@ if [ "$INIT_DB" = true ]; then
|
||||
log "执行生产初始化:这会清空业务数据"
|
||||
CONFIRM=YES "$ROOT/scripts/prod-init-db.sh" "${init_args[@]}"
|
||||
compose restart api
|
||||
wait_for_service_running api 120
|
||||
wait_for_service_health api 180
|
||||
fi
|
||||
|
||||
show_prisma_status
|
||||
compose ps
|
||||
persist_image_tag
|
||||
record_release_state "first-deploy"
|
||||
print_stack_urls
|
||||
|
||||
Reference in New Issue
Block a user