Jenkins Docker抛出异常并开始离线

时间:2017-04-26 21:30:22

标签: docker jenkins

我试图让Jenkins在Docker中运行并运行。我正在使用official repo并提取最新标记。

docker run -u 498 --name awsjenkins -p 8080:8080 -p 50000:50000 -v /mnt/jenkins:/var/jenkins_home jenkins

它开始没问题,但它引发了一个错误:

Apr 26, 2017 9:14:27 PM hudson.model.UpdateCenter updateDefaultSite
WARNING: Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugin upgrades may fail.
java.io.IOException: Server returned HTTP response code: 503 for URL: http://updates.jenkins-ci.org/update-center.json?id=default&version=2.46.2
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at hudson.model.DownloadService.loadJSON(DownloadService.java:172)
    at hudson.model.UpdateSite.updateDirectlyNow(UpdateSite.java:190)
    at hudson.model.UpdateCenter.updateDefaultSite(UpdateCenter.java:2197)
    at jenkins.install.SetupWizard.init(SetupWizard.java:174)
    at jenkins.install.InstallState$3.initializeState(InstallState.java:105)
    at jenkins.model.Jenkins.setInstallState(Jenkins.java:1061)
    at jenkins.install.InstallUtil.proceedToNextStateFrom(InstallUtil.java:96)
    at jenkins.model.Jenkins.<init>(Jenkins.java:951)
    at hudson.model.Hudson.<init>(Hudson.java:86)
    at hudson.model.Hudson.<init>(Hudson.java:82)
    at hudson.WebAppMain$3.run(WebAppMain.java:231)

来自主机的该网址的curl -L返回301,因此我不认为它是防火墙问题......

我在亚马逊上运行此功能,但我认为这不会导致任何问题。我甚至完全打开安全组只是为了踢,但我仍然得到这个错误。此外,我可以访问詹金斯。但是当我这样做时,它告诉我Jenkins正在脱机。

对此有何想法?

1 个答案:

答案 0 :(得分:0)

嗯,希望这可以帮助其他人...感谢Andy的评论,我能够弄清楚。

这里有一些事情要发生。

  1. 官方Dockerfile默认使用1000作为uid和gid。但实际上,1000通常由主机操作系统中的候选者占用。就个人而言,我认为它应该改为更加模糊的东西。只是我的$ .02 ......
  2. 覆盖uid时,实际上并不创建该组。在Jenkins关于Docker Hub的官方文档中,它说:
  3.   

    确保容器中的/your/home用户可以访问jenkins(jenkins用户 - uid 1000)或-u some_other_user使用docker run参数。

    修复非常简单 - 拉出Dockerfile,修改它以使用本地用户和uid / gid(有几种方法可以做到这一点),然后构建/运行它。