Testcontainers がイメージ取得中に失敗した場合、これから作られるコンテナの withEnv 設定は役に立ちません。そのレジストリからのダウンロードは、コンテナが存在する前に Docker デーモンが実行するからです。

失敗した操作確認すべきプロキシ設定
イメージ取得テストが使用する Docker デーモンとそのレジストリ経路
実行中のコンテナ内でのダウンロードそのコンテナ内でアプリケーションが対応する入力
Java テストが Docker またはアプリに接続するその接続を行う Java 側のクライアント

2 つ目のケースでは、既存の GenericContainer 定義に環境変数を追加します。

container
    .withEnv("http_proxy", "http://proxy.example:8080")
    .withEnv("https_proxy", "http://proxy.example:8080");

コンテナ内のダウンロードで公開 HTTP エンドポイントの使用が許されている場合は、HTTP プロキシ一覧からその値を入れてください。イメージ内のプログラムがそれらの変数を読む必要があります。任意のデータベースソケットが HTTP プロキシ通信になるわけではありません。エンドポイントはコンテナから到達可能でなければなりません。その 127.0.0.1 は自分自身を指します。

1 つ目のケースでは、Testcontainers が実際に使う Docker 環境を特定してください。リモートのデーモンや Docker Desktop は、ローカルの dockerd とは別のソースから設定を取ることがあります。広域なプロキシ既定値を追加するときは、ローカルのテストサービスと Docker API を本来の経路に保ってください。

関連記事