ファイルでデフォルトの環境変数を設定¶
Compose はプロジェクトのディレクトリ内にある .env という名前の 1.28 未満では、コマンドを実行する現在の作業ディレクトリ内にある .env ファイルを読み込みます。または、 --project-directory オプションを明示する場合は、プロジェクトのディレクトリにあるファイルを読み込みます。この矛盾を解消するため、 v1.28 以上からは、プロジェクトのディレクトリにあるデフォルトの .env のみに制限しています。 --env-file コマンドライン オプションを使えば、デフォルトの .env を上書きでき、さらに任意の環境ファイルのパスを指定できます。
プロジェクト ディレクトリは優先順位によって決まります
--project-directoryフラグ1つめの
--fileフラグがあるフォルダ現在のディレクトリ
構文ルール¶
.env ファイルは、以下の構文ルールを適用します。
Compose は
envファイルの各行を変数=値形式と想定#で始まる行はコメントとみなし、無視する空白行を無視する
引用記号には特別な処理を行わない。つまり 引用記号は値の一部 とみなす
Compose ファイルと CLI 変数¶
このファイルで定義した環境変数は、 Compose ファイル内で 変数展開 されます。また、以下の CLI 変数 の定義も使えます。
COMPOSE_API_VERSIONCOMPOSE_CONVERT_WINDOWS_PATHSCOMPOSE_FILECOMPOSE_HTTP_TIMEOUTCOMPOSE_PROFILESCOMPOSE_PROJECT_NAMECOMPOSE_TLS_VERSIONDOCKER_CERT_PATHDOCKER_HOSTDOCKER_TLS_VERIFY
注釈
.envファイル内で定義された環境変数の値は、実行時に常に上書きされます。同様に、コマンドラインの引数で渡された値も優先されます(上書きされます)。.envファイル内で定義された環境変数は、コンテナ内から自動的に見えません。コンテナ内で利用できる環境変数を指定するには、 Compose での環境変数 のトピックにあるガイドラインをご覧ください。こちらには、シェル上の環境変数をコンテナ内に渡す方法や、 Compose ファイルでの環境変数の定義方法などの説明があります。
ほかの Compose ドキュメント¶
Compose ファイル リファレンス
参考
- Declare default environment variables in file | Docker Documentation