You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

构建含推荐插件的Jenkins镜像时插件下载URL无响应问题

Jenkins镜像构建插件下载失败(eastamerica.cloudflare.jenkins.io无响应)解决方案

问题背景

构建包含推荐插件的Jenkins LTS JDK21镜像时,拉取基础镜像、更新自有证书步骤正常,但执行jenkins-plugin-cli安装插件时,出现org.apache.http.NoHttpResponseException错误,目标地址eastamerica.cloudflare.jenkins.io:443无响应,本地笔记本可正常访问该地址。

解决方案

1. 更换插件源地址

默认CDN源可能因地域或网络策略导致访问不畅,可在插件安装命令中指定其他更新中心地址:

RUN jenkins-plugin-cli --url https://updates.jenkins.io/update-center.json -f /usr/share/jenkins/ref/plugins.txt \
    && mkdir -p $JENKINS_HOME && chown -R jenkins:jenkins $JENKINS_HOME

也可使用国内合规镜像源地址替代,避免跨地域网络问题。

2. 调整Docker构建网络配置

容器内网络环境与本地不同,可通过以下方式修复:

  • 指定公共DNS:构建时添加DNS参数,解决域名解析异常:
    docker build --dns 8.8.8.8 -t your-jenkins-image .
    
  • 传递代理环境变量:如果本地通过代理访问外网,构建时注入代理参数:
    docker build --build-arg HTTP_PROXY=http://your-proxy-address:port \
                 --build-arg HTTPS_PROXY=http://your-proxy-address:port \
                 -t your-jenkins-image .
    

3. 离线安装插件

提前在本地下载所有需要的插件,构建时直接复制到容器内,跳过在线下载:

  1. 本地执行插件下载命令:
    jenkins-plugin-cli -f plugins.txt --download-directory ./jenkins-plugins
    
  2. 修改Dockerfile,复制本地插件到容器:
    COPY ./jenkins-plugins /usr/share/jenkins/ref/plugins/
    RUN mkdir -p $JENKINS_HOME && chown -R jenkins:jenkins $JENKINS_HOME
    

4. 验证容器内证书信任

即使更新了自有证书,容器可能未信任目标地址的CA证书,可手动导入:

  1. 本地获取目标地址证书:
    openssl s_client -connect eastamerica.cloudflare.jenkins.io:443 < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > jenkins-cf.crt
    
  2. 在Dockerfile中添加证书导入步骤:
    COPY jenkins-cf.crt /usr/local/share/ca-certificates/
    RUN update-ca-certificates
    

内容的提问来源于stack exchange,提问作者Senthil13

火山引擎 最新活动