概述
书接上文,本篇提供另一种jenkins部署方式。
附上篇链接:Jenkins+Docker+Maven部署springboot项目.
介绍
流水线部署方式基本与上篇相同,区别就是部署步骤执行shell
脚本的方式。环境安装及配置不再赘述可参考上篇博文。
创建任务
1.创建流水线任务需要装一个插件,进入插件管理,安装下图红框中的插件。
2.创建流水线任务。
填入项目github地址
填入pipeline脚本
node {
def BUILD_DIR = "/root/build-workspace/"
env.BUILD_DIR = "/root/build-workspace/"
env.MODULE = "hello"
stage('Preparation') { // for display purposes
// Get some code from a GitHub repository
git branch: 'master', credentialsId: 'githubpwd', url: 'https://github.com/zhanghr1217/jenkins.git'
}
stage('Maven Build') {
// Run the maven build
sh "mvn -Dmaven.test.failure.ignore -DskipTests clean install"
}
stage('Deploy') {
sh "/opt/script/build-image.sh"
}
}
应该很好理解,其中分支,凭证id,项目地址根据自己项目情况及全局配置信息进行调整
注意最下方 sh “/opt/script/build-image.sh”
在此处执行dockr镜像的shell脚本
来到服务器根目录下的/opt目录mkdir script文件夹
build-image.sh脚本可以vim进行编写也可在windows下新建txt写入内容,重命名build-image.sh然后,上传到/opt/script文件夹
一下为build-image.sh内容
#!/bin/bash
echo "开始运行"
echo "停止app"
docker stop app
echo "删除容器app"
docker rm app
echo "删除镜像yzx/accout-mange:latest"
docker rmi -f yzx/accout-mange:latest
#要把jar包制作成镜像就必须使用docker build命令 同时必须有对应的Dockerfile(指定jar包位置是在Dockerfile指定)
# . 表示当前目录 -f 参数指定Dockerfile文件 -t 表示 制作的镜像tag
cd /var/lib/jenkins/workspace/accout-mange
docker build -f Dockerfile -t yzx/accout-mange:latest .
echo "新容器id:"
docker create --name app \
-p 9999:8080 \
-v /tmp/accout:/tmp/accout \
yzx/accout-mange:latest
echo "启动容器名:"
docker start app
echo "执行完毕,浏览器打开IP:9999浏览"
3.完成以上步骤即可开始构建
出现以上错误是Jenkins无文件操作权限所致,无法运行build-image.sh脚本,解决方案:执行
chmod +x build-image.sh
4.另一个错误
以上错误是之前采用上传方式完成build-image.sh,其是windows下dos格式文件 vim编写此文件则不会由此问题。
解决方式:
1. vi build-image.sh
:set ff可查看格式
2. :set ff
:set fileformat 修改文件格式
3. :set fileformat=unix
保存退出即可
4. :wq
再次构建,构建成功
测试