集成Jenkins Harborn pipeline任务( 二 )
FROM maven:3-jdk-8-alpineMAINTAINER linanjie@aliyun.comRUN mkdir -p /usr/src/appWORKDIR /usr/src/appENV PORT 5000EXPOSE $PORTADD ./target/SpringProject.jar ./app.jarENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
六、在Jenkins开发视图中创建流水线任务(pipeline)
- 任务名按照上面的配置 , dev开头的项目属于开发组项目 , test开头的项目属于项目 , prod开头的属于生产项目;这里仅创建一个开发流水线任务用来演示 , 测试和生产的配置与开发大同小异 。 注:由于我前面设置开发人员时没有设置"添加凭证"的权限 , 所以需要在配置任务时 , 我采用管理员用户登录 , 因为在配置需要添加凭证才能拉取GitLab中的代码
- 流水线任务需要编写pipeline脚本 , 编写脚本的第一步应该是拉取GitLab中的项目点击"流水线语法":选择"git":填写刚才在GitLab创建的项目地址 , 然后选择"凭证"-->添加-->jenkins:在弹窗中输入对应信息 , 然后点击"添加":点击"添加"后 , 在"凭据"下拉选择刚才创建的凭据 , 然后点击"生成流水线脚本" , 将生成的脚本复制出来:
- 回到配置页面编写pipeline脚本:pipeline{ agent any environment { HARBOR_HOST = "192.168.113.48:8930" BUILD_VERSION = createVersion() } tools{ // 添加环境 , 名称为Jenkins全局配置中自己定义的别名 jdk 'jdk1.8' maven 'maven3.6' } stages{ stage("拉取代码"){ //check CODE steps { git credentialsId: 'c4d554a2-052c-40d5-bb75-12c5a70e0e97', url: '' } } stage("maven构建"){ steps { sh "mvn clean package -Dmaven.test.skip=true" } } stage("构建docker镜像 , 并push到harbor当中"){ //docker push steps { sh ''' docker build -t springproject:$BUILD_VERSION . docker tag springproject:$BUILD_VERSION ${HARBOR_HOST}/dev/springproject:$BUILD_VERSION ''' sh "docker login -u admin -p h12345" + " ${HARBOR_HOST}" sh "docker push ${HARBOR_HOST}/dev/springproject:$BUILD_VERSION" } } }}def createVersion() { // 定义一个版本号作为当次构建的版本 , 输出结果 20201116165759_1return new Date().format('yyyyMMddHHmmss') + "_${env.BUILD_ID}"}
- 请确保Harbor中已经创建dev仓库;pipeline的写法可以自己在网上学习 , 脚本中应尽量不要出现明文的密码 , 为了演示方便 , 我这里直接使用了harbor的明文密码 , 正规来说 , 应该再建一个凭据来维护harborn的用户名和密码 , 然后再通过脚本去获取凭据中的用户名和密码编写完成后点击应用 , 保存 。
- 回到开发视图页面 , 构建刚才创建的流水线任务
- 第一次构建时间相对较久 , 因为maven构建时需要下载对应依赖 , 耐心等待构建完成 , 我这里因为之前已经下载过相关依赖 , 所以时间较短
- 到harbor中查看 , 发现镜像已上传
- 到另外一台主机拉取镜像 , 并以该镜像创建容器[root@node02 ~]# docker pull 192.168.113.48:8930/dev/springproject:20201116165759_1[root@node02 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.113.48:8930/dev/springproject 20201116165759_1 bab09cc7b4e5 13 minutes ago 138MB[root@node02 ~]# docker run -p 5000:8080 -d bab0d5cbe48b83f3d7b69bfec02692e56e6fd9321e35ef4995faf8a9c659ef00a12d[root@node02 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd5cbe48b83f3 bab0 "java -Djava.securit…" 24 seconds ago Up 15 seconds 5000/tcp, 0.0.0.0:5000->8080/tcp interesting_visvesvaraya
- 访问接口
- 联盟|天津半导体集成电路人才联盟成立
- 科技|万业企业控股孙公司北京凯世通拟向芯成科技出售3款集成电路设备
- 软件|山西出台政策奖励集成电路和软件企业
- 高通发布骁龙888芯片,集成X60 5G芯片
- 高通骁龙888正式发布 首发Cortex X1架构集成5G基带
- 搭建私有Sentry日志收集系统并集成到springboot
- 从零搭建vue + jenkins 超详细教程
- 你喜欢的 Go 第三方库:一步为系统集成可视化实时运行时统计
- 集成式|多模块集成式工具 燚博云提升薪管效率
- 柯尼卡美能达最新的小型柔性OLED照明面板可与NFC集成