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