0.jenkins首先创建远程ssh账号 ,分别向两台docker服务器去部署

1.创建一个maven任务

2.创建构件需要的环境变量

var_project_name 是项目名称,包括后面构建的镜像名称也用这个
var_app_docker_path 是利用docker部署用的基础目录,请分别先在两台docker机器上创建这个文件夹
3.配置你的源代码拉取地址

4.配置你的maven构件参数

zkui-master/pom.xml 这个就是你们git上主pom文件的路径
5.添加 Send files or execute commands over SSH 配置 两台机器就配置2个

第1个Transfers配置,主要用来删除历史项目临时目录

#!/bin/bash
#进入根目录
cd /${var_app_docker_path}
#删除临时目录
rm -rf ${var_project_name}
#创建临时目录
mkdir ${var_project_name}
#进入临时目录
cd ${var_project_name}
第2个Transfers配置,主要用来复制镜像文件

这个地址就是jenkins服务器maven打包的地址

${var_project_name}/docker/Dockerfile
${var_project_name}/docker/
/${var_app_docker_path}/${var_project_name}
由于我的Dockerfile文件也是在git代码上

FROM 192.168.88.85:5000/jdk8:v1 MAINTAINER Miguel Garcia Puyol <miguelpuyol@gmail.com> RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone WORKDIR /var/app #ADD zkui-*.jar /var/app/zkui.jar ADD zkui-2.0-SNAPSHOT-jar-with-dependencies.jar /var/app/zkui.jar #开放8000端口 EXPOSE 9091 #配置容器启动后执行的命令 ENTRYPOINT ["java","-jar","/var/app/zkui.jar"]
第3个Transfers配置,主要用来复制打包文件

jenkins 打包地址
${var_project_name}/target/*.jar
${var_project_name}/target/
/${var_app_docker_path}/${var_project_name}
第4个Transfers配置,主要来关闭已经运行的镜像,删除历史镜像,重新打包镜像,执行镜像

#!/bin/bash
echo "↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓开始↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"
#获得变量
var_images_id=`docker images|grep -i ${var_project_name}|awk '{print $3}'`
var_ps_id=`docker ps -a|grep -i ${var_project_name}|awk '{print $1}'`
echo "${var_project_name}docker images ID:${var_images_id}"
echo "${var_project_name}docker ps ID:${var_ps_id}"
#结束镜像任务
if [ -n "$var_ps_id" ]; then
docker rm -f ${var_ps_id}
echo "结束镜像:${var_project_name},ID:${var_images_id}"
fi
#删除历史镜像
if [ -n "$var_images_id" ]; then
docker rmi -f ${var_images_id}
echo "删除镜像:${var_project_name} ID:${var_images_id}"
fi
#进入临时文件
cd /${var_app_docker_path}/${var_project_name}
echo "当前目录:$(cd "$(dirname "$0")";pwd)"
#开始构件镜像
docker build -t ${var_project_name} .
#执行镜像 ,如果需要外部中心注册,需要增加--net参数,主机模式对外暴露IP docker run -it -d -p 9091:9091 --net=host --name ${var_project_name} ${var_project_name}
docker run -it -d -p 9091:9091 --name ${var_project_name} ${var_project_name}
echo "↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑结束↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"
6.配置好以后保存就可以部署服务了


以上为部署过程,脚本可以自行完善