這篇文章我將帶領你們進入一家新的領域,如何利用jenkins發佈鏡像到rancher裏面docker
一.安裝插件apache
登錄jenkins在插件管理器裏搜索rancher安裝rancher插件api
二.添加rancher構建bash
這裏其實咱們也能夠經過以下命令直接推送到鏡像服務上。網絡
mvn clean package docker:build -DpushImage複製代碼
可是考慮的網絡較慢,咱們直接使用插件,內部直接訪問rancher 會快不少maven
三.配置rancher信息tcp
API Endpoint 在rancher這裏能夠找到ui
rancher API Key :spa
username爲第一步獲取的Access Key.net
password爲第一步獲取的Secret Key
id和Description不重要能夠隨意填
Rancher Environment Id:環境id,能夠在rancher管理界面環境管理中獲取
Service Name:格式爲基礎設施名稱/服務名稱,下圖就是基礎設施名稱
點擊進去就是各個服務名稱
Docker Image:容器名稱,能夠使用jenkins變量作動態構建
至此,jenkins上構建完就能夠調用rancher api進行容器發佈和升級。
四.驗證部署是否成功
查看jenkins控制檯日誌
登錄rancher 查看服務日誌順利升級完成
五.備註問題列表
問題一:
緣由是maven不能識別 docker-maven-plugin 須要再setting.xml 的pluginGroups標籤處中加上
<pluginGroup>com.spotify</pluginGroup>複製代碼
以下,reimport就能夠了
<pluginGroups> <pluginGroup>com.spotify</pluginGroup> </pluginGroups>複製代碼
個人pom.xml引入docker插件的地方以下:
<groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.0.0</version>複製代碼
問題二:
o {}->unix://localhost:80: No such file or directory
Apr 06, 2020 11:07:51 AM org.apache.http.impl.execchain.RetryExec execute
解決方案:
1. 打開docker的遠程api訪問(參考:https://blog.csdn.net/csde12/article/details/70240721)
sudo vi /etc/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock複製代碼
2. 重啓守護進程
sudo systemctl daemon-reload
sudo systemctl restart docker複製代碼
3. Jenkins的全局變量中增長DOCKER_HOST=tcp://localhost:2375
問題三
org.apache.http.conn.UnsupportedSchemeException) caught when processing request to {}->tcp://192.168.218.24:2375: tcp protocol is not suppo…
解決方案:
<dockerHost>${docker.repository.host}</dockerHost>複製代碼
tcp改爲http協議就能夠