ファイルでデフォルトの環境変数を設定¶
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_VERSION
COMPOSE_CONVERT_WINDOWS_PATHS
COMPOSE_FILE
COMPOSE_HTTP_TIMEOUT
COMPOSE_PROFILES
COMPOSE_PROJECT_NAME
COMPOSE_TLS_VERSION
DOCKER_CERT_PATH
DOCKER_HOST
DOCKER_TLS_VERIFY
注釈
.env
ファイル内で定義された環境変数の値は、実行時に常に上書きされます。同様に、コマンドラインの引数で渡された値も優先されます(上書きされます)。.env
ファイル内で定義された環境変数は、コンテナ内から自動的に見えません。コンテナ内で利用できる環境変数を指定するには、 Compose での環境変数 のトピックにあるガイドラインをご覧ください。こちらには、シェル上の環境変数をコンテナ内に渡す方法や、 Compose ファイルでの環境変数の定義方法などの説明があります。
ほかの Compose ドキュメント¶
Compose ファイル リファレンス
参考
- Declare default environment variables in file | Docker Documentation