VS Code Dev Containers: ビルドと実行のためのプロキシ設定
remoteEnv は VS Code のサブプロセスを対象にします。実行環境全体、Dockerfile のビルド入力、ベースイメージの取得はそれぞれ別の設定が担います。
失敗したリクエストの段階に応じて、確認する設定の出どころを選びます:
| プロセス | 確認するプロキシ設定 |
|---|---|
| VS Code と関連するリモートサブプロセス | devcontainer.json の remoteEnv |
| コンテナ全体の実行環境 | イメージ/Dockerfile の設定には containerEnv、Compose にはサービス環境 |
| Dockerfile RUN | Docker クライアントの既定プロキシを含む、プロキシのビルド引数 |
| ベースイメージの取得 | Docker デーモンの外向き通信設定 |
1 行目では、次のような断片をマージします:
"remoteEnv": {
"HTTP_PROXY": "http://proxy.example:8080",
"HTTPS_PROXY": "http://proxy.example:8080"
}ダウンローダーがこれらの変数に対応している必要があり、必要な場合は小文字の名前を使います。許可された公開ダウンロードでは、HTTP プロキシ一覧がこれらの remoteEnv URL の候補を提供します。変更後は Dev Containers のライフサイクルで再ビルドまたは再オープンします。
実行時の remoteEnv は、それより前のビルドやイメージの取得には間に合いません。個人のプロキシ資格情報をイメージ層に残すのは ENV では避けてください。
エンドポイントはコンテナから到達可能である必要もあります。localhost はそのコンテナを指します。ホスト側のプロキシには、選択した Docker プラットフォームが公開するアドレスと到達可能なリスナーが必要です。Desktop の host.docker.internal は汎用的な Linux インターフェースではありません。