前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作;本篇文章主要描述流水线集成Docker用法

一、背景描述

微服务架构是当前主流的技术选型,在业务具体落地时,会存在很多业务服务,不管是在开发、测试、上线的任意节点中,如果基于手动编译的方式打包服务,操作成本不仅极高,而且很容易出现纰漏。

通过Pipeline流水线的方式,将服务镜像构建编排成一键触发执行,实现自动化的管理流程,是微服务架构中的必要的功能模块。

二、流程设计

本篇中的流程节点,主要针对打包好的应用Jar包,在docker模块中的处理流程,主要是镜像构建管理与容器运行:

  • 构建docker文件目录与内容;
  • 拷贝Jar包,创建Dockerfile脚本文件;
  • 执行docker镜像构建,推送云仓库;
  • 拉取镜像文件并运行docker容器;

整个流程的都放在Pipeline流水线中,衔接在本地Jar包生成之后。

三、实现过程

1、插件安装

首先安装流程中Docker集成的相关插件:Docker PipelineDocker pluginCloudBees Docker Hub/Registry Notification

在之前的流水线篇幅中,已经通过流水线完成Gitee仓库代码pull和本地打包,下面开始处理docker环节。

2、镜像构建脚本

关于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.jarcd ${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"]
EOFcat Dockerfile'''echo "create Dockerfile success"}}

脚本说明:

  • 在流水线的工作空间创建目录docker-app
  • 每次执行都清空一次docker目录,再把Jar包和Docker脚本放进去;
  • cat-EOF-EOF:即创建Dockerfile文件,并把中间的内容写入;
  • 脚本中的内容必须在文件中顶行写入;

3、打包推送

这里即进入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"}}
}

4、凭据配置

打开Manage Jenkins界面,Manage Credentials选项;

按如下流程配置即可:


同系列推荐

  • Jenkins管理工具详解
  • Pipeline流水语法详解
  • Docker容器入门简介
  • 服务自动化部署和管理
  • 微服务组件二次浅封装

四、源代码地址

GitEE·地址
https://gitee.com/cicadasmile/butte-auto-parent
Wiki·地址
https://gitee.com/cicadasmile/butte-java-note

自动化集成:Pipeline整合Docker容器相关推荐

  1. 自动化集成:Pipeline整合Docker+K8S

    同系列推荐: Jenkins管理工具详解 Pipeline流水语法详解 Docker容器入门简介 Pipeline整合Docker容器 Kubernetes容器引擎详解 微服务组件二次浅封装 前言:该 ...

  2. 自动化集成:Kubernetes容器引擎详解

    同系列推荐: Jenkins管理工具详解 Pipeline流水语法详解 Docker容器入门简介 Pipeline整合Docker容器 微服务组件二次浅封装 前言:该系列文章,围绕持续集成:Jenki ...

  3. Spring cloud 微服务docker容器化最佳实践

    Spring cloud 是当下最炙手可热的微服务套件,我们将介绍如何整合Docker容器达到高效快捷的构建发布 采用了dockerfile-maven-plugin插件发布镜像到远程docker主机 ...

  4. 自动化集成:Docker容器入门简介

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译.打包.镜像构建.部署等操作:本篇文章主要描述Docker基础用法. 一.Docker简介 1.基础 ...

  5. 通过 Azure Pipelines 实现持续集成之docker容器化

    Intro Azure DevOps Pipeline 现在对于公开的项目完全免费,这对于开源项目来讲无疑是个巨大的好消息,在 Github 的 Marketplace 里有个 Azure Pipel ...

  6. docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...

    编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...

  7. Docker容器的自动化监控实现

    本文由  网易云 发布. 近年来容器技术不断成熟并得到应用.Docker作为容器技术的一个代表,目前也在快速发展中,基于 Docker的各种应用也正在普及,与此同时 Docker对传统的运维体系也带来 ...

  8. 自动化集成:Pipeline流水语法详解

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译.打包.镜像构建.部署等操作:本篇文章主要描述Pipeline流水线用法. 一.Webhook原理 ...

  9. GitLab容器注册服务已集成于Docker容器

    GitLab最近发布了集成式Docker容器注册(Container registry)服务,该服务由GitLab工程师Mark Pundsack开发,主要可用于将Docker容器映像与GitLab的 ...

最新文章

  1. 流数据分析平台Storm简介
  2. 用户界面设计的技巧与技术 (作者Scott W.Ambler)
  3. Java Post 数据请求和接收
  4. ASP.NET MVC项目 解决session失效
  5. 音视频技术开发周刊 | 156
  6. EdgeRouter X设置外网远程访问和HTTPS连接指定出口网关
  7. 泰山服务器 oracle数据库,泰山之巅对话•Oracle数据库掌门人:领先对手10年?凭什么口气这么大?...
  8. @Retention注解
  9. 双十一有“后悔药”了?淘宝88VIP将推出退货秒退款服务
  10. 根据Uri获取文件的绝对路径
  11. 浏览器是如何工作的系列:页面布局
  12. day25,多继承,组合,接口,抽象类和鸭子型
  13. eBPF技术应用云原生网络实践:kubernetes网络 | 凌云时刻
  14. 英尺英寸和厘米的换算_英尺米换算(英尺英寸与厘米换算器)
  15. linux授权文件夹777,服务器上如何修改文件夹777权限
  16. 北科大小学期计算机实践报告,北京科技大学小学期C实践报告.pdf
  17. 购房税费计算技术支持
  18. 据说,2021年Apple将推出1416英寸MacBook Pro
  19. 信号与系统-连续系统的时域分析
  20. python空列表列表初始化_Python如何初始化列表?

热门文章

  1. 执行远程服务器上的脚本失败?(环境变量引起的问题)
  2. 初识Matlab遗传算法工具箱 ga
  3. 编程中的移位运算符简单解释
  4. 操作系统之进程管理:13、吸烟者问题
  5. 数据结构之外部排序:最佳归并树
  6. LeetCode 37 解数独
  7. 安全开发流程(SDL、微软)
  8. Python爬虫之puppeteer搭建远程服务器
  9. Ztree手风琴效果(第三版)
  10. [C语言 - 10] C语言保留字