Jenkins流水线部署Java项目
本文最后更新于:6 个月前
Jenkins流水线部署Java项目
参考资料
部署jenkins到docker
配置Jenkins
需要安装docker插件Docker插件介绍,可以通过jenkins自动安装插件Manage Jenkins->Plugin Manage->installed plugins也可以手动安装该插件Manage Jenkins->Plugin Manage->Advanced settings->Deploy Plugin,将这里下载最新的插件或者其他版本的该插件进行上传安装
推荐更换插件下载源Manage Jenkins->Plugin Manage->Advanced settings->Update Site->https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
如图点击 New Item
如图先输入项目名称,选择Pipeline然后点击ok
然后依次如下图操作
- Description:输入项目描述
- Pipeline->Definition:选择Pipeline script from SCM
- SCM:选择git
- Repositories
- Repository URL:git地址
- Credentials:选择git账户
- Branches to build
- Branch Specifier (blank for ‘any’):选择分支例如*/dev;*/master
- Repository browser:选择自动(AUTO)
- Script Path:输入Jenkinsfile文件地址,存放在项目根目录下直接填写Jenkinsfile即可,如果文件名发生改动,也请将此处修改为文件名称
- Repositories
- 最后点击保存即可
添加git账号
点击Add
如下
- Kind:选择Username with password,当然也可以选择其他方式
- Scope:Global
- Username:git账户
- Password:git对应账户密码
- Treat username as secret:是否屏蔽用户名
- ID:一个内部唯一 ID,通过它可以从作业和其他配置中识别这些凭据。通常留空,在这种情况下将生成一个 ID,这适用于使用可视化表单创建的作业。在使用脚本配置中的凭据时明确指定很有用。
- Description:帮助区分相似凭据的可选描述。
编写Jenkinsfile
在项目根目录下新建Jenkinsfile文件
Jenkinsfile名称需要与上面 Script Path使用的名称相同
内容如下
1 |
|
解释1:
- timeout:设置流水线运行的超时时间, 在此之后,Jenkins将中止流水线。例如: options { timeout(time: 1, unit: ‘HOURS’) }
- skipDefaultCheckout:在
agent
指令中,跳过从源代码控制中检出代码的默认情况。例如: options { skipDefaultCheckout() } - docker:使用给定的容器执行流水线或阶段
- reuseNode:一个布尔值, 默认为false。 如果是true, 则在流水线的顶层指定的节点上运行该容器, 在同样的工作区, 而不是在一个全新的节点上.
- image:镜像名称
- maven:3.8.6-openjdk-8-slim:使用和开发环境相同的版本镜像
- args:参数,该参数可能包含直接传递到 docker run 调用的参数
- -v /tool/maven/.m2:/root/.m2 -v /tool/maven/conf:/usr/share/maven/conf:挂载maven的配置文件和下载的jar包,提升编译速度
- steps:执行的命令
解释2:
- mvn clean package -Dmaven.test.skip=true -P prod:打jar包
- sh ‘docker stop ws-mechanism|| true && docker rm ws-mechanism || true && docker rmi ws-mechanism:latest || true ‘:停止并删除镜像
- sh ‘docker build -t ws-mechanism:latest -f Dockerfile .’通过Dockerfile打包image
- sh ‘docker run -itd –restart=always –network=share_net -p 16060:16060 –name ws-mechanism -v /logs/ws-mechanism:/ws-mechanism/log.path_IS_UNDEFINED ws-mechanism:latest’:运行docker run
Dockerfile内容如下
1 |
|
启动
进入到刚刚Jenkins创建的项目点击Build Now进行首次构建,或者打开Blue Ocean进行构建,图示为打开Blue Ocean
通过点击运行进行构建,构建成功如图,每一个stage都是一个节点,该图示通过打两次不同环境的配置文件,在同一个docker中部署两个不同环境的相同项目
构建失败可以通过如图方式进行查看
该错误为Jenkinsfile语法错误
结语
每次提交git后,通过登录jenkins手动构建新的镜像从而运行项目,也可以通过自动方式检测到git提交就进行从新部署,需要修改项目配置.