1-1 机器四台html
jenkins:192.168.20.200 master:192.168.20.201 java
slave01:192.168.20.202 slave02:192.168.20.203node
1-2 测试项目git
地址:https://code.aliyun.com/995586041/test.gitweb
1-1 安装jenkins http://www.javashuo.com/article/p-oslohito-cd.htmlspring
1-2 配置jenkins http://www.javashuo.com/article/p-cmtosfly-dm.htmldocker
此次咱们将项目放到 master 的 /home/gh 文件夹下,注意这个文件夹必须在远程主机已经存在,不然会报错:springboot
1-3 建立一个自由风格的项目:ipwebbash
1-4 源码管理网络
就是最上边的代码,代码里面就是一个springboot项目,仅提供一个获取本机IP的测试接口,能够本身准备,或者fork一份;接口地址:http://127.0.0.1:8080/ip
此项目结构以下:
application.yml
server: port: 8080 #项目启动后的端口号
Dockerfile
FROM jre #基础镜像 MAINTAINER goldleaf #做者信息 ADD ./*.jar /home/gh/ipweb/ipweb.jar #这里是咱们项目打包后的jar CMD java -jar /home/gh/ipweb/ipweb.jar #容器启动时执行该命令
docker-stack.yml
version: '3' #文件版本 services: ipweb: image: ${IMAGE_NAME} #制做后的镜像名称 volumes: - /home/log:/home/log #log地址,若是宿主机上没有该目录,会报错 networks: - central #docker swarm集群的overlay网络 ports: - 8090:8080 #开放端口 deploy: replicas: 2 #容器实例个数 placement: constraints: [node.role == worker] #指定容器只在子节点工做 networks: central: external: name: central #docker swarm集群的overlay网络
1-5 mvn构建项目
maven装在jenkins机器上,打包以后,ssh 发送到mater机器
1-6 具体配置信息
1)这里将项目打包后的jar、Dockerfile、docker-stack.yml发送到master
2)制做相关镜像
3)镜像build以后,push到私有仓库,我本身搭建的欣慰不是内网,push速度太慢,就用了阿里提供的仓库,因此下边多了一步登录阿里仓库的命令,若是不想或者没有条件搭建本身的搭建私有仓库,这里是阿里仓库的地址:https://dev.aliyun.com/search.html
4)docker stack deploy方式启动项目
3-1 检查文件:/home/gh/ipweb
3-2 检查镜像:docker images
3-3 检查stack:docker stack ls
3-4 检查service:docker stack services gh
3-5 检查容器运行状况:docker service ps gh_ipweb
3-6 访问测试:curl 192.168.20.201:8090/ip