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 の経路に残るレジストリまたはトークンサービスの失敗を切り分けます。

関連記事