jenkins如何打包并部署镜像到rancher

1142次阅读  |  发布于4年以前

这篇文章我将带领大家进入一家新的领域,如何利用jenkins发布镜像到rancher里面

一.安装插件

登陆jenkins在插件管理器里搜索rancher安装rancher插件

二.添加rancher构建

这里其实我们也可以通过如下命令直接推送到镜像服务上。

mvn clean package docker:build -DpushImage

但是考虑的网络较慢,我们直接使用插件,内部直接访问rancher 会快很多

三.配置rancher信息

API Endpoint 在rancher这里可以找到

rancher API Key :

username为第一步获取的Access Key

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.service
ExecStart=/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协议就可以

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8