无法在 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命令