#!/usr/bin/env bash # 一键部署:上传编排文件 -> SSH 到服务器拉取镜像并启动 # 用法: ./deploy.sh [app_tag] [front_tag] # 前置环境变量: DEPLOY_HOST, SSHPASS(可选 ACR_NAMESPACE / DEPLOY_USER / REMOTE_DIR) # 注:服务器需已 docker login registry.cn-hangzhou.aliyuncs.com set -euo pipefail APP_VERSION="${1:-${APP_VERSION:-userbase-v1.0}}" FRONT_VERSION="${2:-${FRONT_VERSION:-userbase-front-v1.0}}" HOST="${DEPLOY_HOST:?请设置 DEPLOY_HOST}" PORT="${DEPLOY_PORT:-22}" USER="${DEPLOY_USER:-yunhai}" REMOTE_DIR="${REMOTE_DIR:-/opt/docker/userbase}" NAMESPACE="${ACR_NAMESPACE:-damaomi_docker}" REGISTRY="${ACR_REGISTRY:-registry.cn-hangzhou.aliyuncs.com}" PY="${PYTHON_BIN:-python3}" cd "$(dirname "$0")" echo "== 1/2 上传 compose 到 $HOST:$REMOTE_DIR ==" "$PY" upload.py "$HOST" "$PORT" "$USER" \ docker-compose.userbase.yml "$REMOTE_DIR/docker-compose.userbase.yml" echo "== 2/2 远端拉取镜像并启动 ==" "$PY" remote_run.py "$HOST" "$PORT" "$USER" < .env <