配置更新
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
Reference in New Issue
Block a user