配置更新

This commit is contained in:
2025-10-26 20:10:00 +08:00
parent accd1ae9da
commit 85e910fac9
41 changed files with 334 additions and 330 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ set -e
# 配置变量
APP_NAME="emotion-museum-single"
JAR_NAME="emotion-single-1.0.0.jar"
JAR_NAME="backend-single-1.0.0.jar"
JAR_PATH="./target/${JAR_NAME}"
LOG_DIR="./logs/"
PID_FILE="/tmp/${APP_NAME}.pid"
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-ai"
SERVICE_PORT="19002"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-auth"
SERVICE_PORT=""
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -11,7 +11,7 @@ spring:
enabled: false
discovery:
enabled: true
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
username: nacos
password: Peanut2817*#
+22 -22
View File
@@ -9,7 +9,7 @@
set +e
# 配置变量 - 支持Jenkins环境变量覆盖
REMOTE_HOST="${DEPLOY_HOST:-'root@47.111.10.27'}"
REMOTE_HOST="${DEPLOY_HOST:-'root@101.200.208.45'}"
REMOTE_BUILD_DIR="${REMOTE_BUILD_DIR:-/data/builds}"
REMOTE_DOCKER_COMPOSE_DIR="${REMOTE_DOCKER_DIR:-/data/docker}"
PROFILE="${DEPLOY_ENV:-test}"
@@ -80,10 +80,10 @@ FAILED_DEPLOYMENTS=0
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -91,7 +91,7 @@ check_remote_connection() {
# 创建远程目录
create_remote_directories() {
log_info "创建远程目录结构..."
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -187,15 +187,15 @@ transfer_jar_to_remote() {
# 删除远程旧jar包
log_info "清理远程旧jar包: $service_name"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${service_name}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${service_name}-*.jar"
# 上传新jar包
log_info "上传jar包到远程服务器..."
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${service_name}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${service_name}-1.0.0.jar; then
log_success "jar包传输成功: $service_name"
# 验证远程jar包
local remote_size=$(ssh 'root@47.111.10.27' "du -h $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar | cut -f1")
local remote_size=$(ssh 'root@101.200.208.45' "du -h $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar | cut -f1")
log_info "远程jar包大小: $remote_size"
return 0
else
@@ -220,7 +220,7 @@ deploy_service() {
# 验证远程jar包存在
log_info "验证远程jar包: $service_name"
if ! ssh 'root@47.111.10.27' "test -f $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar"; then
if ! ssh 'root@101.200.208.45' "test -f $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar"; then
local error_msg="远程jar包不存在,请先执行构建和传输"
log_error "$error_msg"
DEPLOYMENT_STATUS[$service_name]="FAILED"
@@ -233,7 +233,7 @@ deploy_service() {
# 停止并删除旧容器
log_info "停止旧容器: $service_name"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${service_name} 2>/dev/null || true
docker rm ${service_name} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${service_name}:latest 2>/dev/null || true
@@ -241,7 +241,7 @@ deploy_service() {
# 构建Docker镜像
log_info "构建Docker镜像: $service_name"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -255,23 +255,23 @@ deploy_service() {
# 启动新容器
log_info "启动新容器: $service_name"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${service_name} \\
--network emotion-network \\
-p ${service_port}:${service_port} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -283,12 +283,12 @@ deploy_service() {
sleep 10
# 检查容器状态
if ssh 'root@47.111.10.27' "docker ps | grep ${service_name}" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "docker ps | grep ${service_name}" > /dev/null 2>&1; then
log_success "服务 $service_name 启动成功"
# 显示容器日志
log_info "显示服务日志 最后10行: $service_name"
ssh 'root@47.111.10.27' "docker logs --tail 10 ${service_name}" 2>/dev/null || true
ssh 'root@101.200.208.45' "docker logs --tail 10 ${service_name}" 2>/dev/null || true
# 记录成功状态
local end_time=$(date +%s)
@@ -300,7 +300,7 @@ deploy_service() {
local error_msg="服务启动失败"
log_error "服务 $service_name 启动失败"
log_error "错误日志:"
local error_logs=$(ssh 'root@47.111.10.27' "docker logs ${service_name}" 2>&1 || echo "无法获取日志")
local error_logs=$(ssh 'root@101.200.208.45' "docker logs ${service_name}" 2>&1 || echo "无法获取日志")
echo "$error_logs"
# 记录失败状态
@@ -320,7 +320,7 @@ create_dockerfile() {
log_info "创建Dockerfile: $service_name"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${service_name} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${service_name} << 'EOF'
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -355,7 +355,7 @@ EOF"
# 创建Docker网络
create_docker_network() {
log_info "创建Docker网络..."
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker network create emotion-network 2>/dev/null || true
"
log_success "Docker网络创建完成"
@@ -374,7 +374,7 @@ health_check() {
# 等待服务完全启动
sleep 5
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${service_port}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${service_port}/actuator/health" > /dev/null 2>&1; then
log_success "服务 $service_name 健康检查通过"
else
log_warning "服务 $service_name 健康检查失败,可能仍在启动中"
@@ -422,7 +422,7 @@ show_deployment_report() {
case $status in
"SUCCESS")
printf "%-20s ${GREEN}%-10s${NC} %-10s %s\n" "$service_name" "✅ 成功" "$time" "http://47.111.10.27:$service_port"
printf "%-20s ${GREEN}%-10s${NC} %-10s %s\n" "$service_name" "✅ 成功" "$time" "http://101.200.208.45:$service_port"
;;
"FAILED")
printf "%-20s ${RED}%-10s${NC} %-10s %s\n" "$service_name" "❌ 失败" "$time" "查看错误日志"
@@ -452,7 +452,7 @@ show_deployment_report() {
# 显示当前运行的容器状态
echo "🐳 当前容器运行状态:"
echo "----------------------------------------"
ssh 'root@47.111.10.27' "docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' | grep emotion || echo '没有运行的emotion相关容器'"
ssh 'root@101.200.208.45' "docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' | grep emotion || echo '没有运行的emotion相关容器'"
echo ""
echo "========================================"
+20 -20
View File
@@ -8,7 +8,7 @@
set -e
# 配置变量
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="${DEPLOY_ENV:-test}"
@@ -65,10 +65,10 @@ FAILED_DEPLOYMENTS=0
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -104,7 +104,7 @@ transfer_all_jars() {
log_info "开始传输所有jar包到远程服务器..."
# 创建远程目录
ssh 'root@47.111.10.27' "mkdir -p $REMOTE_BUILD_DIR"
ssh 'root@101.200.208.45' "mkdir -p $REMOTE_BUILD_DIR"
local transfer_success=0
local transfer_failed=0
@@ -121,12 +121,12 @@ transfer_all_jars() {
log_info "传输jar包: $service_name"
# 删除远程旧jar包
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${service_name}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${service_name}-*.jar"
# 上传新jar包
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${service_name}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${service_name}-1.0.0.jar; then
# 验证远程jar包
remote_size=$(ssh 'root@47.111.10.27' "du -h $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar | cut -f1")
remote_size=$(ssh 'root@101.200.208.45' "du -h $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar | cut -f1")
log_success "$service_name 传输成功 (远程大小: $remote_size)"
transfer_success=$((transfer_success + 1))
else
@@ -149,7 +149,7 @@ transfer_all_jars() {
# 创建远程目录
create_remote_directories() {
log_info "创建远程目录结构..."
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -161,7 +161,7 @@ create_remote_directories() {
# 创建Docker网络
create_docker_network() {
log_info "创建Docker网络..."
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker network create emotion-network 2>/dev/null || true
"
log_success "Docker网络创建完成"
@@ -176,7 +176,7 @@ deploy_service_to_remote() {
log_info "部署服务到远程: $service_name"
# 验证远程jar包存在
if ! ssh 'root@47.111.10.27' "test -f $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar"; then
if ! ssh 'root@101.200.208.45' "test -f $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar"; then
local error_msg="远程jar包不存在"
log_error "$error_msg"
return 1
@@ -187,7 +187,7 @@ deploy_service_to_remote() {
# 停止并删除旧容器
log_info "停止旧容器: $service_name"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${service_name} 2>/dev/null || true
docker rm ${service_name} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${service_name}:latest 2>/dev/null || true
@@ -195,7 +195,7 @@ deploy_service_to_remote() {
# 构建Docker镜像
log_info "构建Docker镜像: $service_name"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${service_name}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -209,23 +209,23 @@ deploy_service_to_remote() {
# 启动新容器
log_info "启动新容器: $service_name"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${service_name} \\
--network emotion-network \\
-p ${service_port}:${service_port} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -237,12 +237,12 @@ deploy_service_to_remote() {
sleep 10
# 检查容器状态
if ssh 'root@47.111.10.27' "docker ps | grep ${service_name}" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "docker ps | grep ${service_name}" > /dev/null 2>&1; then
log_success "服务 $service_name 启动成功"
# 显示容器日志
log_info "显示服务日志 最后10行: $service_name"
ssh 'root@47.111.10.27' "docker logs --tail 10 ${service_name}" 2>/dev/null || true
ssh 'root@101.200.208.45' "docker logs --tail 10 ${service_name}" 2>/dev/null || true
# 记录成功状态
local end_time=$(date +%s)
@@ -252,7 +252,7 @@ deploy_service_to_remote() {
else
local error_msg="服务启动失败"
log_error "服务 $service_name 启动失败"
local error_logs=$(ssh 'root@47.111.10.27' "docker logs ${service_name}" 2>&1 || echo "无法获取日志")
local error_logs=$(ssh 'root@101.200.208.45' "docker logs ${service_name}" 2>&1 || echo "无法获取日志")
echo "$error_logs"
# 记录失败状态
@@ -270,7 +270,7 @@ create_dockerfile() {
log_info "创建Dockerfile: $service_name"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${service_name} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${service_name} << 'EOF'
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-explore"
SERVICE_PORT="19005"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -9,7 +9,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: emotion-dev
group: DEFAULT_GROUP
enabled: false
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-gateway"
SERVICE_PORT="19000"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -128,7 +128,7 @@ spring:
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -128,7 +128,7 @@ spring:
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-growth"
SERVICE_PORT="19004"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -9,7 +9,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: emotion-dev
group: DEFAULT_GROUP
enabled: false
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-record"
SERVICE_PORT="19003"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -9,7 +9,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: emotion-dev
group: DEFAULT_GROUP
enabled: false
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-reward"
SERVICE_PORT="19006"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -9,7 +9,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: emotion-dev
group: DEFAULT_GROUP
enabled: false
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-stats"
SERVICE_PORT="19009"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -9,7 +9,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: emotion-dev
group: DEFAULT_GROUP
enabled: false
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-user"
SERVICE_PORT="19001"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
+19 -19
View File
@@ -9,7 +9,7 @@ set -e
# 配置变量
SERVICE_NAME="emotion-websocket"
SERVICE_PORT="19007"
REMOTE_HOST="'root@47.111.10.27'"
REMOTE_HOST="'root@101.200.208.45'"
REMOTE_BUILD_DIR="/data/builds"
REMOTE_DOCKER_COMPOSE_DIR="/data/docker"
PROFILE="test"
@@ -42,10 +42,10 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@101.200.208.45' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
else
log_error "无法连接到远程服务器 'root@47.111.10.27'"
log_error "无法连接到远程服务器 'root@101.200.208.45'"
exit 1
fi
}
@@ -72,7 +72,7 @@ build_service() {
create_dockerfile() {
log_info "创建Dockerfile: $SERVICE_NAME"
ssh 'root@47.111.10.27' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
ssh 'root@101.200.208.45' "cat > $REMOTE_DOCKER_COMPOSE_DIR/Dockerfile.${SERVICE_NAME} << 'EOF'
# 使用阿里云镜像源的OpenJDK
# 使用Java 17 Alpine镜像
FROM openjdk:17-alpine
@@ -110,7 +110,7 @@ deploy_service() {
fi
# 创建远程目录
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
mkdir -p $REMOTE_BUILD_DIR
mkdir -p $REMOTE_DOCKER_COMPOSE_DIR
mkdir -p /data/logs/emotion-museum
@@ -118,11 +118,11 @@ deploy_service() {
# 删除旧jar包
log_info "删除远程旧jar包"
ssh 'root@47.111.10.27' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
ssh 'root@101.200.208.45' "rm -f $REMOTE_BUILD_DIR/${SERVICE_NAME}-*.jar"
# 上传新jar包
log_info "上传jar包"
if scp "$jar_file" 'root@47.111.10.27':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
if scp "$jar_file" 'root@101.200.208.45':$REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar; then
log_success "jar包上传成功"
else
log_error "jar包上传失败"
@@ -134,18 +134,18 @@ deploy_service() {
# 停止旧容器
log_info "停止旧容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker stop ${SERVICE_NAME} 2>/dev/null || true
docker rm ${SERVICE_NAME} 2>/dev/null || true
docker rmi ${PROJECT_NAME}/${SERVICE_NAME}:latest 2>/dev/null || true
"
# 创建Docker网络
ssh 'root@47.111.10.27' "docker network create emotion-network 2>/dev/null || true"
ssh 'root@101.200.208.45' "docker network create emotion-network 2>/dev/null || true"
# 构建镜像
log_info "构建Docker镜像"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
cd $REMOTE_DOCKER_COMPOSE_DIR
# 复制jar包到Docker构建目录
cp $REMOTE_BUILD_DIR/${SERVICE_NAME}-1.0.0.jar $REMOTE_DOCKER_COMPOSE_DIR/
@@ -157,23 +157,23 @@ deploy_service() {
# 启动容器
log_info "启动新容器"
ssh 'root@47.111.10.27' "
ssh 'root@101.200.208.45' "
docker run -d \\
--name ${SERVICE_NAME} \\
--network emotion-network \\
-p ${SERVICE_PORT}:${SERVICE_PORT} \\
-v /data/logs/emotion-museum:/app/logs \\
-e SPRING_PROFILES_ACTIVE=${PROFILE} \\
-e MYSQL_HOST=47.111.10.27 \\
-e MYSQL_HOST=101.200.208.45 \\
-e MYSQL_PORT=3306 \\
-e MYSQL_DATABASE=emotion_museum \\
-e MYSQL_USERNAME=root \\
-e MYSQL_PASSWORD='EmotionMuseum2025*#' \\
-e REDIS_HOST=47.111.10.27 \\
-e REDIS_HOST=101.200.208.45 \\
-e REDIS_PORT=6379 \\
-e REDIS_PASSWORD= \\
-e REDIS_DATABASE=0 \\
-e NACOS_SERVER_ADDR=47.111.10.27:8848 \\
-e NACOS_SERVER_ADDR=101.200.208.45:8848 \\
-e NACOS_USERNAME=nacos \\
-e NACOS_PASSWORD='Peanut2817*#' \\
--restart unless-stopped \\
@@ -185,24 +185,24 @@ deploy_service() {
sleep 15
# 检查状态
if ssh 'root@47.111.10.27' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
if ssh 'root@101.200.208.45' "docker ps | grep ${SERVICE_NAME}" > /dev/null; then
log_success "服务启动成功"
# 显示日志
log_info "服务日志 最后20行:"
ssh 'root@47.111.10.27' "docker logs --tail 20 ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs --tail 20 ${SERVICE_NAME}"
# 健康检查
log_info "执行健康检查..."
sleep 10
if ssh 'root@47.111.10.27' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
if ssh 'root@101.200.208.45' "curl -f -s http://localhost:${SERVICE_PORT}/actuator/health" > /dev/null 2>&1; then
log_success "健康检查通过"
else
log_warning "健康检查失败,服务可能仍在启动中"
fi
else
log_error "服务启动失败"
ssh 'root@47.111.10.27' "docker logs ${SERVICE_NAME}"
ssh 'root@101.200.208.45' "docker logs ${SERVICE_NAME}"
exit 1
fi
}
@@ -219,7 +219,7 @@ main() {
deploy_service
log_success "$SERVICE_NAME 服务部署完成!"
log_info "访问地址: http://47.111.10.27:$SERVICE_PORT"
log_info "访问地址: http://101.200.208.45:$SERVICE_PORT"
}
# 执行主函数
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: prod
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
@@ -4,7 +4,7 @@ spring:
cloud:
nacos:
discovery:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
enabled: true
@@ -22,7 +22,7 @@ spring:
heart-beat-timeout: 15000
ip-delete-timeout: 30000
config:
server-addr: 47.111.10.27:8848
server-addr: 101.200.208.45:8848
namespace: test
group: DEFAULT_GROUP
file-extension: yml
@@ -33,14 +33,14 @@ spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
url: jdbc:mysql://101.200.208.45:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username: root
password: EmotionMuseum2025*#
# Redis配置
data:
redis:
host: 47.111.10.27
host: 101.200.208.45
port: 6379
password: EmotionMuseum2025*#
database: 0
+3 -3
View File
@@ -4,9 +4,9 @@ VITE_APP_TITLE=情绪博物馆
VITE_APP_VERSION=1.0.0
# API配置
VITE_API_BASE_URL=http://47.111.10.27:19089/api
VITE_WS_BASE_URL=ws://47.111.10.27:19089/api
VITE_UPLOAD_URL=http://47.111.10.27:19089/api/upload
VITE_API_BASE_URL=http://101.200.208.45:19089/api
VITE_WS_BASE_URL=ws://101.200.208.45:19089/api
VITE_UPLOAD_URL=http://101.200.208.45:19089/api/upload
# 调试配置
VITE_DEBUG=false
Regular → Executable
+12 -8
View File
@@ -2,7 +2,7 @@
# 部署脚本 - 将构建好的文件上传到服务器
# 使用方法: ./deploy.sh
SERVER_IP="47.111.10.27"
SERVER_IP="101.200.208.45"
USERNAME="root"
REMOTE_PATH="/data/www/emotion-museum"
@@ -24,14 +24,18 @@ echo "正在上传文件到服务器 $SERVER_IP..."
# 上传所有文件到服务器
if scp dist/index.html "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/" && \
scp -r dist/assets "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/" && \
scp dist/test-*.html "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/"; then
echo "部署完成!"
echo "访问地址: http://$SERVER_IP/emotion-museum/"
scp -r dist/assets "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/"; then
# 上传测试文件(如果存在)
if [ -f "dist/test-login-redirect.html" ]; then
scp dist/test-*.html "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/" 2>/dev/null || true
fi
echo "✅ 部署完成!"
echo "📱 访问地址: http://$SERVER_IP/emotion-museum/"
else
echo "部署失败,请检查:"
echo "部署失败,请检查:"
echo "1. 服务器IP地址是否正确"
echo "2. SSH密钥是否配置正确"
echo "3. 服务器目录权限是否正确"
+6 -6
View File
@@ -59,25 +59,25 @@ ls -la dist/
### 方法二:手动部署
```bash
# 1. 上传index.html
scp dist/index.html root@47.111.10.27:/data/www/emotion-museum/
scp dist/index.html root@101.200.208.45:/data/www/emotion-museum/
# 2. 上传assets目录
scp -r dist/assets root@47.111.10.27:/data/www/emotion-museum/
scp -r dist/assets root@101.200.208.45:/data/www/emotion-museum/
# 3. 上传测试文件
scp dist/test-*.html root@47.111.10.27:/data/www/emotion-museum/
scp dist/test-*.html root@101.200.208.45:/data/www/emotion-museum/
```
## ✅ 部署后验证
### 1. 基础功能验证
- [ ] 访问 http://47.111.10.27/emotion-museum/ 正常加载
- [ ] 访问 http://101.200.208.45/emotion-museum/ 正常加载
- [ ] 静态资源(CSS/JS)正常加载,无404错误
- [ ] 页面样式正常显示
### 2. 路由验证
- [ ] 访问 http://47.111.10.27/emotion-museum/chat 正常
- [ ] 访问 http://47.111.10.27/emotion-museum/diary 正常
- [ ] 访问 http://101.200.208.45/emotion-museum/chat 正常
- [ ] 访问 http://101.200.208.45/emotion-museum/diary 正常
- [ ] 刷新页面不会出现404错误
### 3. 登录流程验证
+4 -4
View File
@@ -68,7 +68,7 @@ npm run build
将 `dist/` 目录下的所有文件上传到服务器的 `/data/www/emotion-museum/` 目录
3. **验证部署**
访问:http://47.111.10.27/emotion-museum/
访问:http://101.200.208.45/emotion-museum/
## 文件结构
@@ -106,9 +106,9 @@ location /emotion-museum/ {
## 验证部署
部署完成后,访问以下地址验证:
- 主页:http://47.111.10.27/emotion-museum/
- 聊天页面:http://47.111.10.27/emotion-museum/chat
- 日记页面:http://47.111.10.27/emotion-museum/diary
- 主页:http://101.200.208.45/emotion-museum/
- 聊天页面:http://101.200.208.45/emotion-museum/chat
- 日记页面:http://101.200.208.45/emotion-museum/diary
## 注意事项