优化一键脚本
This commit is contained in:
+11
-15
@@ -127,14 +127,13 @@ validate_env() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local app_env caddy_domain caddy_email mysql_dsn redis_addr storage_endpoint admin_base_path
|
||||
local app_env caddy_domain caddy_email mysql_dsn redis_addr storage_endpoint
|
||||
app_env="$(require_env APP_ENV)"
|
||||
caddy_domain="$(require_env CADDY_DOMAIN)"
|
||||
caddy_email="$(require_env CADDY_EMAIL)"
|
||||
mysql_dsn="$(require_env MYSQL_DSN)"
|
||||
redis_addr="$(require_env REDIS_ADDR)"
|
||||
storage_endpoint="$(require_env STORAGE_ENDPOINT)"
|
||||
admin_base_path="$(require_env VITE_ADMIN_BASE_PATH)"
|
||||
require_env MYSQL_DATABASE >/dev/null
|
||||
require_env MYSQL_ROOT_PASSWORD >/dev/null
|
||||
require_env MYSQL_USER >/dev/null
|
||||
@@ -174,14 +173,6 @@ validate_env() {
|
||||
log_error "STORAGE_ENDPOINT 仍指向本机,请改为 http://minio:9000"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! "${admin_base_path}" =~ ^/[A-Za-z0-9][A-Za-z0-9._-]*$ ]]; then
|
||||
log_error "VITE_ADMIN_BASE_PATH 必须是单段路径,例如 /manage-7x9k2p,当前值:${admin_base_path}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${admin_base_path}" == "/admin" || "${admin_base_path}" == "/m" || "${admin_base_path}" == "/api" ]]; then
|
||||
log_error "VITE_ADMIN_BASE_PATH 不能使用 ${admin_base_path},请改成不公开的后台入口"
|
||||
exit 1
|
||||
fi
|
||||
if awk -F= '/^[A-Z0-9_]+=/{ if ($0 ~ /=(change-|保持你的|你的)/) found=1 } END { exit found ? 0 : 1 }' "${BACKEND_ENV}"; then
|
||||
log_error "backend/.env 里还有占位值,请先替换后再部署"
|
||||
exit 1
|
||||
@@ -189,16 +180,18 @@ validate_env() {
|
||||
}
|
||||
|
||||
compose() {
|
||||
docker compose -f "${COMPOSE_FILE}" "$@"
|
||||
docker compose --env-file "${BACKEND_ENV}" -f "${COMPOSE_FILE}" "$@"
|
||||
}
|
||||
|
||||
compose_user_cmd() {
|
||||
printf "docker compose --env-file backend/.env -f deploy/docker-compose.prod.yml"
|
||||
}
|
||||
|
||||
export_caddy_env() {
|
||||
export CADDY_DOMAIN
|
||||
export CADDY_EMAIL
|
||||
export VITE_ADMIN_BASE_PATH
|
||||
CADDY_DOMAIN="$(require_env CADDY_DOMAIN)"
|
||||
CADDY_EMAIL="$(require_env CADDY_EMAIL)"
|
||||
VITE_ADMIN_BASE_PATH="$(require_env VITE_ADMIN_BASE_PATH)"
|
||||
}
|
||||
|
||||
public_url() {
|
||||
@@ -240,7 +233,10 @@ wait_service_healthy() {
|
||||
sleep 1
|
||||
done
|
||||
|
||||
log_error "${label} 启动超时,请执行:docker compose -f deploy/docker-compose.prod.yml logs ${service}"
|
||||
log_error "${label} 启动超时"
|
||||
log_warn "最近 ${service} 日志:"
|
||||
compose logs --tail=120 "${service}" || true
|
||||
log_error "可继续执行:$(compose_user_cmd) logs ${service}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -350,7 +346,7 @@ main() {
|
||||
wait_http_ready
|
||||
|
||||
log_success "部署完成:$(public_url)"
|
||||
log "常用命令:docker compose -f deploy/docker-compose.prod.yml logs -f caddy backend"
|
||||
log "常用命令:$(compose_user_cmd) logs -f caddy backend"
|
||||
|
||||
if [[ "${FOLLOW_LOGS}" == "1" ]]; then
|
||||
compose logs -f backend
|
||||
|
||||
Reference in New Issue
Block a user