本篇文章给大家带来了关于流水线继承docker用法的相关知识,主要是Pipeline整合Docker容器的相关问题,希望对大家有帮助。
本篇文章主要描述流水线集成Docker用法。
微服务架构是当前主流的技术选型,在业务具体落地时,会存在很多业务服务,不管是在开发、测试、上线的任意节点中,如果基于手动编译的方式打包服务,操作成本不仅极高,而且很容易出现纰漏。
通过Pipeline流水线的方式,将服务镜像构建编排成一键触发执行,实现自动化的管理流程,是微服务架构中的必要的功能模块。
本篇中的流程节点,主要针对打包好的应用Jar
包,在docker模块中的处理流程,主要是镜像构建管理与容器运行:
Jar
包,创建Dockerfile
脚本文件;整个流程的都放在Pipeline流水线中,衔接在本地Jar包生成之后。
首先安装流程中Docker集成的相关插件:Docker Pipeline
,Docker plugin
,CloudBees Docker Hub/Registry Notification
。
在之前的流水线篇幅中,已经通过流水线完成Gitee仓库代码pull和本地打包,下面开始处理docker环节。
关于Dockerfile的脚本语法也可以参考之前docker篇幅,下面看流水线中的用法:
environment { docker_directory = 'docker-app' docker_repository = '仓库URL' } stage('Dockerfile') { steps { sh ''' rm -rf ${docker_directory} mkdir -p ${docker_directory} cp auto-client/target/auto-client-1.0-SNAPSHOT.jar ${docker_directory}/auto-client.jar cd ${docker_directory} cat>Dockerfile<<EOF FROM java:8 MAINTAINER cicadasmile VOLUME /data/docker/logs ADD auto-client.jar application.jar ENTRYPOINT ["java","-Dspring.profiles.active=dev","-Djava.security.egd=file:/dev/./urandom","-jar","/application.jar"] EOF cat Dockerfile ''' echo "create Dockerfile success" } }
脚本说明:
docker-app
;这里即进入docker目录,执行镜像打包的操作,并把镜像推送到云端仓库,很多仓库都是私有的,需要身份验证,通过配置凭据去访问:
stage('DockerImage'){ steps { script { dir("${docker_directory}") { sh 'ls' docker.withRegistry("${docker_directory}", '访问凭据') { docker.build("doc-line-app:latest").push() } } echo "build DockerImage success" } } }
打开Manage Jenkins
界面,Manage Credentials
选项;
按如下流程配置即可:
GitEE·地址 https://gitee.com/cicadasmile/butte-auto-parent Wiki·地址 https://gitee.com/cicadasmile/butte-java-note
推荐学习:《docker视频教程》
以上是技术解答之Pipeline整合Docker容器的详细内容。更多信息请关注PHP中文网其他相关文章!