一个jenkins的pipeline,收藏
如果可以隔离不同流程的脚本,
在不同的阶段实现,
那么,所有类型的CI,
是否就可以用同一个JOB去实现?
比如:
编译节点,GIT地址,编译命令,HARBOR地址等。
(关于为什么要用赤裸裸的LOGIN命令,
上一个BLOG里有说明,
因为YET ANOTHER DOCKER插件,
生成的是老式的.dockercfg文件,
在新版docker里用不了,
新版docker要用login生成的.docker/config.json文件)
而统一CI时的目录,
同一镜像用于不同环境,
就是bootstart.sh及dockerfile的作用了。
pipeline { agent { node { label "${JENKINS_SLAVE_NODE}" } } stages { stage('Prepare Git Code') { steps { echo "${SITE}" sh "rm -rf ${WORKSPACE}/*" git branch: '${BRANCH_TO_BUILD}', credentialsId: 'GitLab', url: '${GIT_URL}' echo 'Preparing end..' } } stage("Build") { steps { dir("${WORKSPACE}/${DIR_BUILD_FILE}") { sh "${BUILD_CMD}" } } } stage("Get Dockerfile & Bootstart.sh") { steps { dir("${WORKSPACE}/${DIR_BUILD_FILE}") { writeFile encoding: 'utf-8', file: 'Dockerfile', text: "${DOCKERFILE_TEMPLATE}" writeFile encoding: 'utf-8', file: 'bootstart.sh', text: "${BOOTSTART_TEMPLATE}" } } } stage("DockerBuild") { steps { echo 'DockerBuild..' dir("${WORKSPACE}/${DIR_BUILD_FILE}") { sh "cp ${BUILD_TARGET}/${PACKAGE_NAME} ${PACKAGE_NAME}" sh "docker build -t ${HARBOR_ADDRESS}/${SITE}/${APP}:${DEPLOY_VERSION} ." } echo 'DockerBuild end..' } } stage("DockerPush") { steps { echo 'DockerPush..' // This step should not normally be used in your script. Consult the inline help for details. sh "docker login -u ${HARBOR_USER} -p ${HARBOR_PASSWORD} http://${HARBOR_ADDRESS}" sh "docker push ${HARBOR_ADDRESS}/${SITE}/${APP}:${DEPLOY_VERSION}" echo 'DockerPush end..' } } } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker初体验,关于Dockerfile那点事
一、Dockerfile的格式 Dockerfile的格式如下: # Comment 以“#”开头的行为注释行。跨行注释也必须加“#”,Dockerfile不支持连续字符“”。命令解析指令也是以“#”开头,命令解析器是一个可选项,位于Dockerfile的首行,只允许出现一次,第二次出现则被认为是注释,在解析器中换行符同样是不被支持的,但是其中的非断行空格是允许的。 #directive=value # directive =value # directive= value # directive = value # escap Escape在dockerfile中被用作转义字符和换行符,如果不特别指定,系统默认的转义字符为: (反斜杠)。转义不能在RUN命令中执行,除非位于行末进行格式换行。作为换行符时,escape允许Dockerfile指令跨行执行。反引号在Windows下非常有用(举例可以参阅官方文档) # escape=\ (反斜杠) 或 # escape=` (反引号) INSTRUCTION arguments INSTRUCTION一般被称为指令或者命令,对大小写不敏感...
- 下一篇
【邀您参加】6月7-8日上海云栖大会-飞天技术汇,深入剖析云上智能如何推动中国企业加速数字化革新
诚邀您莅临2018云栖大会-上海峰会,让我们一起聚焦人工智能、新零售和金融等行业的最新发展,助力企业数字化转型,助力产业数字化变革,助力数字经济化发展。 阿里云飞天技术汇为您邀请到多位资深云计算技术专家,从弹性计算、存储、网络、CDN和数据库等产品的技术层面,聚焦金融行业云端创新,诠释云端智能化解决方案,为您深入剖析云上智能如何推动中国企业加速实现数字化革新。 飞天技术汇分论坛议程: 报名请访问:https://yida.alibaba-inc.com/o/yqdhsh 或扫描文末图中二维码,输入飞天技术汇嘉宾专属邀请码:FTJS3。嘉宾证件全场通用,注册成功之后可以自由参加云栖大会上海峰会全部议程。 了解更多大会安排,请点击访问 驱动数字中国,我们上海见!
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境