配置更新

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