windows环境下docker+jenkins实现springboot项目的自动部署
程序员文章站
2024-01-27 14:04:40
...
本机要安装jdk、maven环境。
Jenkins全局配置jdk、maven、git
1.打开Jenkins构建一个maven项目
2. 填写Jenkins配置
3. 立即 构建
构建成功结果。
构建出现异常,可尝试修改。
4. 编写dockerfile(操作环境下。或挂载路径)
#基于openjdk:8
FROM tomcat:7
# 指定当前操作目录
WORKDIR /usr/local/tomcat/webapps
#容器启动后执行的操作
CMD java -jar springboot-docker-1.0.jar
- 编写打包成功后的shell脚本
#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=f:/docker-jenkins
DOCKER_PATH=/usr/local/tomcat/webapps
# 源jar路径
SOURCE_PATH=f:/resource/jenkins/workspace/dockerTest/target
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=springboot-docker-1.0
TASK_NAME=spring-boot-docker-0.0.1.RELEASE
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
DATE=`date +%Y%m%d%H%M`
# 最新构建代码 移动到项目环境
function transfer(){
echo "最新构建代码 $SOURCE_PATH/$TASK_NAME.jar 迁移至 $BASE_PATH ...."
cp $SOURCE_PATH/$TASK_NAME.jar $BASE_PATH/$SERVER_NAME.jar
echo "迁移完成"
}
# 备份
function backup(){
if [ -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
echo "$SERVER_NAME.jar 备份..."
cp $BASE_PATH/$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 "$IID" ]; then
echo "存在$SERVER_NAME镜像,IID=$IID"
else
echo "不存在$SERVER_NAME镜像,开始构建镜像"
cd $BASE_PATH
docker build -t $SERVER_NAME .
fi
}
# 运行docker容器
function run(){
backup
transfer
build
if [ -n "$CID" ]; then
echo "存在$SERVER_NAME容器,CID=$CID,重启docker容器 ..."
docker restart $SERVER_NAME
echo "$SERVER_NAME容器重启完成"
else
echo "不存在$SERVER_NAME容器,docker run创建容器..."
docker run -d --name $SERVER_NAME -v $BASE_PATH:$DOCKER_PATH -p 8888:8888 $SERVER_NAME
echo "$SERVER_NAME容器创建完成"
fi
}
#入口
run
- 构建
查看docker镜像及容器
结果展示:
此时,每次修改还需要手动构建更新。
- 配置自动构建
上一篇: PHP 小代码