企业代理环境下Paketo构建Spring Boot镜像遇代理连接拒绝问题求助
解决Paketo Buildpacks代理环境下无法下载BellSoft JDK的问题
手动传递代理变量到构建环境
Paketo Buildpacks不会自动继承宿主机代理变量或读取Docker配置,需在构建时显式注入:
pack build your-image-name \ --env HTTP_PROXY=http://localhost:3128 \ --env HTTPS_PROXY=http://localhost:3128 \ --env NO_PROXY=localhost,127.0.0.1
注意:若使用Docker Desktop,需把
localhost替换为宿主机内网IP(如192.168.x.x),容器内的localhost指向自身,无法访问宿主机的cntlm服务。
验证容器对代理的可达性
先测试容器能否访问cntlm代理,排除网络连通问题:
docker run --rm -e HTTP_PROXY=http://localhost:3128 ubuntu:20.04 wget -O - https://github.com/bell-sw/Liberica/releases/download/17.0.8+7/bellsoft-jdk17.0.8+7-linux-amd64.tar.gz
如果测试失败,执行以下操作:
- 修改cntlm监听地址:编辑
/etc/cntlm.conf,将Listen改为0.0.0.0:3128,重启服务:sudo systemctl restart cntlm - 开放防火墙端口:
sudo ufw allow 3128/tcp
配置Paketo代理配置文件
在项目根目录创建.paketo/proxy/config文件,内容如下:
http-proxy=http://localhost:3128 https-proxy=http://localhost:3128 no-proxy=localhost,127.0.0.1
构建时挂载该配置到容器:
pack build your-image-name --volume "$(pwd)/.paketo/proxy:/platform/env"
检查Gradle全局代理配置
确保~/.gradle/gradle.properties中配置了代理,Paketo会读取该配置:
systemProp.http.proxyHost=localhost systemProp.http.proxyPort=3128 systemProp.https.proxyHost=localhost systemProp.https.proxyPort=3128 systemProp.http.nonProxyHosts=localhost|127.0.0.1 systemProp.https.nonProxyHosts=localhost|127.0.0.1
内容的提问来源于stack exchange,提问作者flywell
相关产品推荐
相关产品推荐

