#!/bin/bash REMOTE_SERVER="idata@172.16.20.1" REMOTE_PATH="~/cyw/y4" DOCKER_CONTAINER_NAME="generator_data" export JAVA_HOME=/data/jenkins/jdk-11.0.23 export MAVEN_HOME=/data/jenkins/apache-maven-3.9.9 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH java -version mvn -version # 设置脚本执行时的错误处理模式,一旦发生错误立即退出 set -e cd /var/jenkins_home/workspace/y-server-tools && mvn clean package -DskipTests # 检查 Maven 构建是否成功 if [ $? -ne 0 ]; then echo "Maven 构建失败,退出脚本执行。" exit 1 fi scp /var/jenkins_home/workspace/y-server-tools/target/y-server-tools-1.0.0.jar $REMOTE_SERVER:$REMOTE_PATH scp /var/jenkins_home/workspace/y-server-tools/build/generator_data.sh $REMOTE_SERVER:$REMOTE_PATH # 登录远程服务器并执行后续操作 ssh $REMOTE_SERVER << EOF echo "停止容器..............." docker stop $DOCKER_CONTAINER_NAME echo "复制jar包到容器中..............." docker cp $REMOTE_PATH/y-server-tools-1.0.0.jar $DOCKER_CONTAINER_NAME:/app/app.jar docker cp $REMOTE_PATH/generator_data.sh $DOCKER_CONTAINER_NAME:/app/generator_data.sh echo "重启容器................." docker restart $DOCKER_CONTAINER_NAME # 等待一段时间以确保容器有足够的时间启动 sleep 15 echo "检查容器状态................." container_status=$(docker inspect --format='{{.State.Status}}' $DOCKER_CONTAINER_NAME) # 输出容器状态 echo "容器状态: $container_status" # 判断容器状态是否为running if [ "$container_status" = "running" ]; then echo "容器重启成功,状态为运行中。" else echo "容器重启失败或未处于运行状态。" fi exit echo "重启完毕...." EOF exit