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 クライアントのプロキシ対応を確認します。環境の注入は設定を渡すだけであり、アプリケーションがそれを使う必要があります。

関連記事