目录:

  • ​​1. 安装插件提示: There were errors checking the update sites: SocketException: Connection timed out (Read failed)​​
  • ​​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​​
  • ​​3. ERROR: No such settings file /usr/local/maven/conf/setting.xml exists​​
  • ​​4. Jenkins构建docker镜像,提示Dockerfile不存在​​
  • ​​5. [Docker] ERROR: Failed to exec start:Connect to 192.168.107.51:2375 [/192.168.107.51] failed: Connection refused (Connection refused)​​
  • ​​6. jenkins创建任务后不要修改任务名!!!!!​​

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

将插件管理里面的地址:​​https​​​改为 ​​http​​。然后点击submit–>Check Now

docker安装Jenkins的坑_java


然后出现新的异常:There were errors checking the update sites: IOException: Could not find JSON in http://updates.jenkins-zh.cn/update-center.json?id=default&versinotallow=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的版本配置信息。

docker安装Jenkins的坑_linux_02


这时,再次点击问题1里面的​​Submit Now​​,应该就可以正常了。这时,插件列表页也可以正常显示了。

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

docker安装Jenkins的坑_java_03


这是由于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

docker安装Jenkins的坑_Jenkins_04

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是没有权限读取复制后的文件的。

docker安装Jenkins的坑_docker_05


然后构建试下。

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

docker安装Jenkins的坑_java_06


这时,外部浏览器访问:​​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​

docker安装Jenkins的坑_maven_07


如果是云服务器的话,开放2375端口后,记得要设置IP白名单,防止服务器被用来挖矿。

docker安装Jenkins的坑_maven_08

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

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

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

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

最后实在想不出来是哪的问题了,就看了下构建的日志,发现新构建的镜像记录,都是走的cache,下面是正常的构建过程:

docker安装Jenkins的坑_linux_09


在找到问题后,删除之前重命名的任务,为了保险起见,又接着删除jenkins工作空间的任务文件夹,然后看了下docker镜像列表,发现重命名任务后,构建的的docker镜像除了tag不一样,ID都是一样的,这也难怪后面部署的都不是最新的代码了。

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