jenkins如何打包並部署鏡像到rancher

這篇文章我將帶領你們進入一家新的領域,如何利用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插件,運行 提示:docker:bulid時No plugin found for prefix 'docker'

解決方案:

緣由是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協議就能夠

相關文章
相關標籤/搜索