macOS下Docker执行bootBuildImage遇github.com DNS超时错误
解决Docker中执行
bootBuildImage时github.com DNS超时问题 你遇到的问题是Docker容器内DNS解析失败,导致Paketo Buildpack无法下载BellSoft Liberica JRE包。以下是几个可行的解决方案:
1. 修改Docker DNS配置
Docker默认的DNS服务器可能无法正常解析github.com,换成公共DNS即可:
- 打开Docker Desktop,进入设置 -> Docker Engine
- 在配置文件中添加/修改
dns字段:{ "dns": ["8.8.8.8", "114.114.114.114"] } - 点击应用 & 重启,然后重新执行构建命令。
2. 重启Docker服务
临时的DNS缓存或服务异常可能导致该问题,重启Docker即可:
- 在Docker Desktop右上角菜单选择Restart,等待服务重启完成后重试构建。
3. 使用主机网络模式构建
让Docker容器直接使用主机的网络配置(包括DNS),执行构建时添加网络参数:
./gradlew bootBuildImage --docker-network host
4. 预下载JRE包并本地引用
手动下载所需的JRE包到本地,通过环境变量指定Buildpack使用本地文件:
- 下载包到本地路径(比如
~/Downloads/bellsoft-jre20.0.1+10-linux-amd64.tar.gz) - 执行构建时设置环境变量:
BP_JVM_INSTALL_URL=file:///Users/你的用户名/Downloads/bellsoft-jre20.0.1+10-linux-amd64.tar.gz ./gradlew bootBuildImage
为什么浏览器能下载但Docker不行?
主机浏览器使用的是macOS系统的DNS配置,而Docker容器默认使用独立的DNS设置,两者的DNS服务器可能不同,导致容器内无法解析github.com。
内容的提问来源于stack exchange,提问作者Cornelius Roemer
相关产品推荐
相关产品推荐

