Maven 能下载,但 Jib 拉不到基础镜像
先定位失败的仓库或镜像仓库请求,再按发出该请求的组件所用的代理配置进行设置。
Maven 依赖能正常下载,但 Jib 在访问镜像仓库时失败。这条线索很有用:Maven 仓库的访问是通的,只是没有走到 Jib 的镜像仓库客户端。
从失败的 URL 入手
| 失败的操作 | 需要检查的代理配置 |
|---|---|
| Maven 插件或依赖获取 | settings.xml 中生效的仓库代理及排除项。 |
| Jib 获取基础镜像或仓库令牌的请求 | Jib 与仓库通信时使用的 Java 网络属性。 |
对于无需认证的 HTTP 中间代理,在 Maven 调用中给出 Jib 的路径:
mvn -Dhttp.proxyHost=proxy.example.net \
-Dhttp.proxyPort=8080 \
-Dhttps.proxyHost=proxy.example.net \
-Dhttps.proxyPort=8080 \
-Dhttp.nonProxyHosts='localhost|127.*|*.internal.example' \
jib:buildTar使用实际的代理主机和端口,同时保留项目的 Jib 镜像设置。对于允许的公共代理线路上的公共仓库和令牌服务,HTTP 代理列表可为这些免认证的代理字段提供候选。host 属性接受主机名,不带 http:// 前缀。https 属性用于为 HTTPS 目标选择代理;Java 的 HTTPS 绕过列表同样使用 http.nonProxyHosts。
输出到本地同样需要拉取
jib:buildTar 只在本地写出镜像归档,但它仍可能需要联网先取得基础镜像。选择这种输出并不会消除对仓库的请求。
改完配置后,再次比对失败的 URL。保留可用的 Maven 仓库设置,并针对 Jib 这条路径上剩余的仓库或令牌服务故障继续排查。