配置更新
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
+10
-6
@@ -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 "部署完成!"
|
# 上传测试文件(如果存在)
|
||||||
echo "访问地址: http://$SERVER_IP/emotion-museum/"
|
if [ -f "dist/test-login-redirect.html" ]; then
|
||||||
|
scp dist/test-*.html "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ 部署完成!"
|
||||||
|
echo "📱 访问地址: http://$SERVER_IP/emotion-museum/"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "部署失败,请检查:"
|
echo "❌ 部署失败,请检查:"
|
||||||
echo "1. 服务器IP地址是否正确"
|
echo "1. 服务器IP地址是否正确"
|
||||||
echo "2. SSH密钥是否配置正确"
|
echo "2. SSH密钥是否配置正确"
|
||||||
echo "3. 服务器目录权限是否正确"
|
echo "3. 服务器目录权限是否正确"
|
||||||
|
|||||||
+6
-6
@@ -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
@@ -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
|
||||||
|
|
||||||
## 注意事项
|
## 注意事项
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user