init: CasSsoService CAS 5.3 overlay (cas.war via LFS)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# 一键部署:上传编排文件 -> SSH 到 ECS 拉取镜像并启动(CAS,依赖公共 mysql8/redis/rabbitmq)
|
||||
# 用法: ./deploy.sh <version>
|
||||
# 前置环境变量:
|
||||
# DEPLOY_HOST (必填) ECS 公网/私网 IP 或域名(SSH 目标,不是 ACR 仓库地址!)
|
||||
# SSHPASS (必填) ECS 上 $DEPLOY_USER 的 SSH 密码
|
||||
# ACR_NAMESPACE (必填) 阿里云镜像命名空间,如 damaomi_docker
|
||||
# ACR_PASSWORD (可选) 若提供则在 ECS 上自动 docker login,避免 ECS 未登录导致 pull 失败
|
||||
# ACR_USERNAME (可选) 默认 15121037482
|
||||
# DEPLOY_USER / DEPLOY_PORT / REMOTE_DIR 均有默认值
|
||||
set -euo pipefail
|
||||
VERSION="${1:-latest}"
|
||||
HOST="${DEPLOY_HOST:?请设置 DEPLOY_HOST(ECS 的 IP/域名,不是 ACR 仓库地址)}"
|
||||
PORT="${DEPLOY_PORT:-22}"
|
||||
USER="${DEPLOY_USER:-yunhai}"
|
||||
REMOTE_DIR="${REMOTE_DIR:-/opt/docker/apps/cas-sso}"
|
||||
ACR_NAMESPACE="${ACR_NAMESPACE:?请设置 ACR_NAMESPACE(如 damaomi_docker)}"
|
||||
ACR_USERNAME="${ACR_USERNAME:-15121037482}"
|
||||
ACR_PASSWORD="${ACR_PASSWORD:-}"
|
||||
# 镜像走公网端点(内网 registry-vpc 在不在 VPC 的 ECS 上连不通)
|
||||
ACR_REGISTRY="${ACR_REGISTRY:-registry.cn-hangzhou.aliyuncs.com}"
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
echo "== 1/2 上传 compose + run-cas.sh + init.sql + cas.war 到 $HOST:$REMOTE_DIR =="
|
||||
python3 upload.py "$HOST" "$PORT" "$USER" \
|
||||
docker-compose.cas.yml "$REMOTE_DIR/docker-compose.cas.yml" \
|
||||
run-cas.sh "$REMOTE_DIR/run-cas.sh" \
|
||||
init.sql "$REMOTE_DIR/init.sql"
|
||||
|
||||
# 若提供了 ACR 密码,生成自动登录命令(避免 ECS 未登录导致 pull 失败)
|
||||
LOGIN_CMD=""
|
||||
if [ -n "$ACR_PASSWORD" ]; then
|
||||
LOGIN_CMD="docker login $ACR_REGISTRY -u $ACR_USERNAME -p $ACR_PASSWORD"
|
||||
fi
|
||||
|
||||
echo "== 2/2 远端拉取镜像并启动 =="
|
||||
python3 remote_run.py "$HOST" "$PORT" "$USER" <<EOF
|
||||
set -e
|
||||
mkdir -p "$REMOTE_DIR"
|
||||
cd "$REMOTE_DIR"
|
||||
cat > .env <<ENV
|
||||
ACR_REGISTRY=$ACR_REGISTRY
|
||||
ACR_NAMESPACE=$ACR_NAMESPACE
|
||||
VERSION=$VERSION
|
||||
MYSQL_PASSWORD=${MYSQL_PASSWORD:-Cas@123456}
|
||||
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-Root@123456}
|
||||
ENV
|
||||
/bin/chmod +x "$REMOTE_DIR/run-cas.sh"
|
||||
$LOGIN_CMD
|
||||
docker compose -f docker-compose.cas.yml pull cas
|
||||
docker compose -f docker-compose.cas.yml up -d --force-recreate
|
||||
docker image prune -f
|
||||
echo DEPLOY_OK
|
||||
EOF
|
||||
Reference in New Issue
Block a user