docker安装Jenkins的坑

1. 安装插件提示: There were errors checking the update sites: SocketException: Connection timed out (Read failed)

将插件管理里面的地址:https改为 http。然后点击submit–>Check Now
在这里插入图片描述
然后出现新的异常:There were errors checking the update sites: IOException: Could not find JSON in http://updates.jenkins-zh.cn/update-center.json?id=default&version=2.222.4

2. There were errors checking the update sites: IOException: Could not find JSON in http://updates.jenkins-zh.cn/update-center.json?id=default&version=2.222.4

如果http还是请求不通,则改回https,然后单独在浏览器里访问报错的链接:https://updates.jenkins-zh.cn/update-center.json发现是正常的,返回了一个很大的JSON,里面包含了Jenkins的版本配置信息。
在这里插入图片描述
这时,再次点击问题1里面的Submit Now,应该就可以正常了。这时,插件列表页也可以正常显示了。

3. ERROR: No such settings file /usr/local/maven/conf/setting.xml exists

在这里插入图片描述
这是由于Jenkins里面配置maven配置文件时,路径有误。在全局工具类里面配置maven配置文件时,需要指定的是Jenkins挂载的maven路径。

Jenkins挂载目录

-v  /usr/local/maven/apache-maven-3.6.3:/usr/local/maven 

那么配置的时候,指定settings.xml 文件地址应该为:/usr/local/maven/conf/settings.xml

注意名称settings.xml不要写错了,否则一直提示找不到该xml文件。如果还不行则将当前maven文件夹权限改为777

命令:chmod -R 777 apache-maven-3.6.3
在这里插入图片描述

4. Jenkins构建docker镜像,提示Dockerfile不存在

[Docker] ERROR: Failed to create docker image: Configured Docker file 'Dockerfile' does not exist.
ERROR: Build step failed with exception
java.lang.IllegalArgumentException: Configured Docker file 'Dockerfile' does not exist.
	at org.jenkinsci.plugins.dockerbuildstep.cmd.remote.CreateImageRemoteCallable.call(CreateImageRemoteCallable.java:68)
	at org.jenkinsci.plugins.dockerbuildstep.cmd.remote.CreateImageRemoteCallable.call(CreateImageRemoteCallable.java:29)
	at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
	at org.jenkinsci.plugins.dockerbuildstep.cmd.CreateImageCommand.execute(CreateImageCommand.java:115)
Caused: java.lang.IllegalArgumentException
	at org.jenkinsci.plugins.dockerbuildstep.cmd.CreateImageCommand.execute(CreateImageCommand.java:119)
	at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:77)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.build(MavenModuleSetBuild.java:944)
	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:894)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
	at hudson.model.Run.execute(Run.java:1856)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:428)
Build step 'Execute Docker command' marked build as failure
Finished: FAILURE

如果Jenkins拉取的是svn上的单模块的项目,应该不会出现在这种问题。又或者是因为github上的代码配置路径的问题。

我这里在管理代码时多加了一层目录,github项目名下,又包含了一层项目名,然后Dockerfile是在项目下,所以导致这里构建的时候,提示找不到Dockerfile文件。

接着试着将Dockerfile 拷贝一份出来,这里还有个问题就是,手动copy的文件,需要修改文件所属的用户和组,否则Jenkins是没有权限读取复制后的文件的。
在这里插入图片描述
然后构建试下。

5. [Docker] ERROR: Failed to exec start:Connect to 192.168.107.51:2375 [/192.168.107.51] failed: Connection refused (Connection refused)

在这里插入图片描述
这时,外部浏览器访问:http://192.168.104.51:2375/version 是访问不通的,正常应该返回一个docker 版本的信息JSON。

然后看下之前修改的/lib/systemd/system/docker.service,发现ExecStart还是默认值,2375端口没有开放。

这里改为:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
在这里插入图片描述
如果是云服务器的话,开放2375端口后,记得要设置IP白名单,防止服务器被用来挖矿。
在这里插入图片描述

6. jenkins创建任务后不要修改任务名!!!!!

这个是真的有点坑,在我创建任务后,构建、打包docker镜像都是正常的,然后发现任务名不太合适,就改了一下。然后问题就来了。

打包的docker镜像,一直不是最新的代码,同时新建的两个任务,另一个就是正常的。刚开始以为是代码没有拉下来,结果去了jenkins的工作空间里面看代码,发现确实是最新的代码。

这时候还没有意识到构建docker镜像出问题了。

最后实在想不出来是哪的问题了,就看了下构建的日志,发现新构建的镜像记录,都是走的cache,下面是正常的构建过程:
在这里插入图片描述
在找到问题后,删除之前重命名的任务,为了保险起见,又接着删除jenkins工作空间的任务文件夹,然后看了下docker镜像列表,发现重命名任务后,构建的的docker镜像除了tag不一样,ID都是一样的,这也难怪后面部署的都不是最新的代码了。

在删除文件夹和历史任务后,重新新建任务,舒舒服服,一次搞定!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值