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