ビルド中のパッケージ取得には、Dockerfile の ENV に一時的な経路を保存せず、Docker の定義済みプロキシ入力を使います。POSIX 呼び出しでは次のように指定できます。

HTTP_PROXY=http://203.0.113.10:8080 \
HTTPS_PROXY=http://203.0.113.10:8080 \
docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY .

ドキュメントのエンドポイントを置き換えます。--build-arg の名前の後に値を省略すると、この呼び出しの環境から取得されます。定義済み入力には対応する ARG 宣言は不要です。

Docker は既定で、これらのプロキシ引数をビルドキャッシュ処理と docker history から除外します。Dockerfile で明示的に参照すると挙動が変わるため、別の例が宣言しているという理由だけで追加しないでください。

プロセスは値を受け取ります。認証付き URL は、出力した環境、ログ、コピーした設定、後続のイメージ操作から漏れる可能性があります。Dockerfile の ENV は経路を最終イメージの環境の一部にします。

機密情報が必要なコマンドには BuildKit の secret mount を使います。認証情報をその操作に限定し、mount を出力したり内容をイメージレイヤーへコピーしたりしないでください。

これらのビルド入力は、daemon が先に行うレジストリ pullも、到達できないリモート builder のホスト経路も設定しません。後で最終イメージとアプリケーション設定に永続的なプロキシ値がないか確認してください。

関連記事