无法在 Docker 中部署的 Jenkins 中安装插件

Posted

技术标签:

【中文标题】无法在 Docker 中部署的 Jenkins 中安装插件【英文标题】:Unable to install Plugins in Jenkins deployed in Docker 【发布时间】:2021-10-28 21:37:33 【问题描述】:

我成功地使用最新的官方图像https://hub.docker.com/r/jenkins/jenkins 安装了 Jenkins,并将https://repo.jenkins-ci.org、https://updates.jenkins-ci.org/、https://updates.jenkins.io/、https://www.jenkins.io/ SSL 证书添加到 jenkins 和 jdk 的 cacerts 并提供了 cacerts 路径JAVA_OPTS 但我仍然得到以下异常

hudson.PluginManager#doCheckUpdatesServer:1 次尝试检查更新站点时出错。最后一个异常是:SSLHandshakeException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

下面是我的撰写文件

version: '3.7'
services: 
    jenkins:
        image: jenkins/jenkins:lts-jdk11
        privileged: true
        user: root
        environment: 
            JAVA_OPTS: -Djavax.net.ssl.trustStore=/var/jenkins_home/keystore/cacerts -Dhudson.model.UpdateCenter.pluginDownloadReadTimeoutSeconds=120
        ports: 
            - 8080:8080
            - 50000:50000
        volumes:
            - jenkins_home:/var/jenkins_home
volumes:
    jenkins_home:

证书添加到 cacerts

root@**************:/# keytool -list -v -keystore $JENKINS_HOME/keystore/cacerts | grep jenkins
Enter keystore password:  **************
Alias name: https://repo.jenkins-ci.org
Owner: CN=repo.jenkins-ci.org
  DNSName: repo.jenkins-ci.org
Alias name: https://updates.jenkins-ci.org/
Owner: CN=updates.jenkins-ci.org
  DNSName: updates.jenkins-ci.org
Alias name: https://updates.jenkins.io/
Owner: CN=updates.jenkins.io
  DNSName: updates.jenkins.io
Alias name: https://www.jenkins.io/
Owner: CN=jenkins.io
  DNSName: jenkins.io
root@**************:/#

我哪里错了?

【问题讨论】:

【参考方案1】:

错误消息表明 TLS 客户端找不到从服务器在 TLS 握手期间提供的 X.509 证书到信任库中的任何 X.509 证书的路径。要么你在那里遗漏了一些东西,要么你没有使用你认为你正在使用的信任库。您可以检查与 -Djavax.net.debug=ssl,handshake 一起使用的信任库。

【讨论】:

您好@automatictest,非常感谢您的帮助。发现我的组织正在添加一些我应该安装在 docker 容器中的额外 SSL 证书

以上是关于无法在 Docker 中部署的 Jenkins 中安装插件的主要内容,如果未能解决你的问题,请参考以下文章

docker部署Jenkins,以及在Jenkins中使用宿主机的docker/docker-compose命令

在容器中运行Jenkins部署主机中的docker应用

在容器中运行Jenkins部署主机中的docker应用

在容器中运行Jenkins部署主机中的docker应用

jenkins+gitlab+maven+docker部署项目之jenkins用户权限管理

Jenkins持续集成docker部署+配置+操作Jenkins