Compose のプロキシ変数をコンテナに渡す
プロジェクトの .env ファイルが自動で注入されると仮定せず、プロキシ変数を Compose サービスの環境の一部にします。
Compose のプロジェクト .env ファイルは補間用の値を提供します。その値をコンテナに渡すには、サービス設定の中で参照します。
たとえば、.env にはプロキシのエンドポイントが含まれます:
HTTP_PROXY=http://203.0.113.10:8080
このサービスは、HTTP と HTTPS の両方の宛先リクエストにこれを使います:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
ドキュメントのアドレスとイメージは置き換えてください。サービス、またはHTTP プロキシ一覧から互換性のある HTTP エンドポイントを選びます。通常の HTTP プロキシでも、要求されたトンネルをサポートしていれば、HTTPS を CONNECT 経由で運べます。
明示的な env_file エントリは、選んだファイルの変数をサービスに渡すもう一つの方法です。プロジェクトの補間ファイルは、暗黙のコンテナ env_file としては機能しません。
アプリケーションに何が届いたかを確認する
docker compose config は解決済みのサービス設定を表示します。docker compose config --environment は代わりに補間で使われた値を表示します。
サービスの環境とアプリケーションのプロセスを比較します。既存のコンテナは .env を編集しても新しい値を受け取りません。サービス中断を許容して、意図した Compose のライフサイクルで変更を適用します。
変数がなければ、サービス設定を修正します。存在するのにリクエストが直接のままであれば、HTTP クライアントのプロキシ対応を確認します。環境の注入は設定を渡すだけであり、アプリケーションがそれを使う必要があります。