#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/home/project
# 源jar路径
SOURCE_PATH=/var/lib/jenkins/workspace
#项目名称
PROJECT_NAME=Eureka
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=eureka-0.0.1-SNAPSHOT
#容器id
CID=$(docker ps | grep "eureka" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "eureka" | awk '{print $3}')
DATE=`date +%Y%m%d%H%M`
# 最新构建代码 移动到项目环境
function transfer(){
echo "最新构建代码 $SOURCE_PATH/$PROJECT_NAME/target/$SERVER_NAME.jar 迁移至 $BASE_PATH ...."
cp $SOURCE_PATH/$PROJECT_NAME/target/$SERVER_NAME.jar $BASE_PATH/eureka.jar
echo "迁移完成"
}
# 备份
function backup(){
if [ -f "$SOURCE_PATH/$PROJECT_NAME/target/$SERVER_NAME.jar" ]; then
echo "$SERVER_NAME.jar 备份..."
cp $SOURCE_PATH/$PROJECT_NAME/target/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
echo "备份 $SERVER_NAME.jar 完成"
else
echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
fi
}
# 构建docker镜像
function build(){
#清除旧容器
if [ -n "$CID" ]; then
echo "存在eureka容器,CID=$CID"
echo "停止旧容器"
docker stop eureka
echo "删除旧容器"
docker rm eureka
fi
# 清楚旧镜像
if [ -n "$IID" ]; then
echo "存在eureka镜像,IID=$IID"
echo "删除镜像"
docker rmi $IID
fi
#构建镜像
echo "开始构建镜像"
cd $BASE_PATH
docker build -t eureka .
echo "构建镜像成功!"
# 运行docker容器
echo "创建并启动eureka容器..."
docker run --name eureka -v $BASE_PATH:$BASE_PATH -d -p 7001:7001 eureka
echo "eureka容器启动完成"
}
# 运行docker容器
function run(){
backup
transfer
build
}
#入口
run
docker启动shell
最新推荐文章于 2024-03-13 15:11:22 发布