流程及原理

流程梳理:

微服务一键部署实现后只需要将测试好的代码提交至版本管理工具(如:git、SVN),程序会自动实现更新代码并打包发布等后面的流程,省心省力。

实现过程

前置环境:

默认已经装好Jenkins、maven、docker和git,我的Jenkins也在docker容器中运行的,由于在Jenkins容器中默认无法使用docker命令,所以在Jenkins启动时需要加入以下参数:

如果还是无法使用,为了省时,推荐使用下面集成好的Jenkins镜像,Dockerfile:

同时启动时还是得加上面提到的参数,启动命令如下:

$ docker run --name jenkins -p 7080:8080 -p 50000:50000 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /var/docker_data/jenkins/jenkins_home:/var/jenkins_home -v /var/docker_data/jenkins/settings:/var/settings -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -d my-jenkins

正式开始:

1、 在程序的Pom.xml文件中加入docker-maven-plugin插件,如下:

需要说明的是dockerHost指定的是使用哪个主机的docker,如果不填写,则默认为本机,由于我的Jenkins在docker容器中与宿主机互不相通,所以我指定了宿主机的ip和端口。

dockerDirectory指定了你的Dockerfile所在的位置。

2、 在项目的根目录下新建一个shell脚本,我的是build.sh,脚本内容就是重新启动docker。

3、 Jenkins中配置maven:点击“系统管理”-->“GlobalTool Configuration”-->“maven安装”,选择install from Apavhe版本为3.5.0,勾选自动安装。

4、 然后新建一个自由风格的项目,完成后点击“配置”,源码管理选择git并填写项目的git地址。构建触发器选择Poll SCM,填写“*/1 * * * *”,意思是一分钟去查询一次git源码如果有更新则会自动构建。其他随意。

5、 构建环节:选择Invoke top-level Maventargets,选择第三步中配置的maven3.5.0,Goals填写package -e -X docker:build -DskipTest -DdockerImageTags=latest,意思是使用maven的插件构建镜像,具体参数可以百度。

6、 构建环节:接着第五步,再增加一个构建步骤放下面,选择Executeshell,Command填写:

就是执行项目根目录的那个脚本文件。如下图:

7、 最后一点,也是很重要的一点,就是必须给docker配置一个服务监听端口,找到docker.service文件,在“ExecStart参数”后面加上“ -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock”,命令如下:


后面小编会分享更多这方面的干货,感兴趣的朋友走一波关注哩~

daemon.json无法启动docker_devops一键部署|详解如何搭建git+maven+jenkins+docker相关推荐

  1. 我们小公司使用了6年的项目部署方案,打包 + 一键部署详解,稳的一批

    时间就如白驹过隙,转眼间已经是 2028 年了.小二入职一家初创公司已经 6 年了,眼瞅着开发团队从 3 个人壮大到 54 人,心里有时候会感觉挺不可思议的. 这些年,身边的同事来了又去,有些刚熟悉没 ...

  2. centos7搭建git+maven+jenkins快速集成、部署环境(docker方式)(一)

    为什么80%的码农都做不了架构师?>>>    阅读以下内容之前,需要温习下docker.linux基础. 1.下载jenkins的docker镜像 Jenkins仓库地址:http ...

  3. k8s安装和部署详解

    k8s安装和部署详解 文章目录 k8s安装和部署详解 kubernetes官方提供的三种部署方式 minikube kubeadm 二进制包 使用kubeadm方式安装 1.准备环境 2.确认dock ...

  4. python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解

    Python之使用adb shell命令启动应用的方法详解 一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具 ...

  5. [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解

    本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议详解 , Kickstart (PXE+DHCP+TFTP+HTTP). PXE环境概述 作为中 ...

  6. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  7. kafka安装部署详解

    kafka安装部署详解 1. zookeeper安装部署 1.1 zookeeper下载 1.2 zookeeper配置启动 1.3 zookeeper验证 2. kafka安装部署 2.1 kafk ...

  8. Postgresql -XL 10r.1.1安装部署详解(跳过N多坑)

    Postgresql -XL 10r.1.1安装部署详解(跳过N多坑) 目前安装postgre10r1.1的文档较少,本人目前是在三台虚拟机上搭建的postgre xl 10r1.1集群,之后将pos ...

  9. phpstudy服务器站点,服务器中phpstudy网站部署详解

    导读:服务器中phpstudy网站部署详解 phpstudy是一款比较优质的建站软件,上面搭载了Apache+iis+mysql等多个网站环境,而且可以自由切换到所需版本,对于需要部署复杂环境的网站, ...

最新文章

  1. BIEE建模 之 Administration 导入元数据时无法显示表
  2. 苹果6可以分屏吗_苹果减肥法可以吃鸡蛋吗 苹果减肥法做法
  3. 一段从TXT导入excel的py脚本
  4. zabbix JMX监控Tomcat及错误解决方法
  5. 恶狗变萌犬,路人妹子变老婆:日本开源GAN“插件”,想P哪里点哪里 | Demo
  6. EasyRecovery---ppt恢复技巧
  7. android instance区别,Android singleTask 和singleInstance的区别
  8. no serializer
  9. android gridview 选择变色 再点击还原 并支持多选。记录贴 01
  10. Python中使用seek方法来移动文件指针的位置
  11. 一篇Chat(沉迷机器人操作系统(ROS)的一个理由和四种修仙秘籍)
  12. python字符串前加字母u或者r区
  13. TASK1_高等数学
  14. webERP的网络资源
  15. MySQL的几种join方法
  16. 1292. 元素和小于等于阈值的正方形的最大边长-前缀和算法
  17. pcb板子开窗_PCB中 开窗 是什么意思?
  18. 1加到100用python实现
  19. 计算机软件公司用ps是,[计算机软件及应用]PS培训.ppt
  20. Cisco Packet Tracer,交换机连接PC构建LAN

热门文章

  1. 全面改用HTML5+CSS3来架构
  2. laravel CURD 查询构造器
  3. 理解Linux和其他UNIX-Like系统上的平均负载
  4. ServiceStack.OrmLite使用
  5. 2019牛客暑期多校训练营(第九场) E All men are brothers
  6. HDU 2243考研路茫茫——单词情结 (AC自动机+矩阵快速幂)
  7. [T-ARA][Goodbye, OK]
  8. 通过声明Attribute属性改变不同类的输出效果
  9. 屏幕旋转的处理方法,实现视图位置的变化
  10. [转载]我看到的最好的解释AngularJs中Factory和Service和Provide不同