×

解惑时间:`env_file`字段,`environment`字段,以及`.env`文件 之间的区别和联系

Falcon 2024-04-02 views:
摘要

正在生成中……

env_file 字段

  • 用于在 docker-compose.yml 中从一个或多个指定的文件中加载环境变量。
  • 文件中的每一行都应该是一个简单的键值对(例如,KEY=value)。
  • 可以包含多个 env_file 来自不同的文件。
  • 如果有相同的变量在 env_filedocker-compose.yml 的其他地方定义,env_file 中的值通常会被其他地方的定义覆盖。

environment 字段

  • 用于在 docker-compose.yml 文件中直接定义环境变量。
  • 可以是数组或键值对的形式。
  • 如果 environmentenv_file 有重叠的变量,environment 字段里定义的值会覆盖 env_file 中对应的值。

.env 文件

  • 特殊的环境文件,其位置通常与 docker-compose.yml 文件相同目录下。
  • 不需要在 docker-compose.ymlenv_file 字段中显式声明即可加载。
  • 包含的变量可以在 docker-compose.yml 文件中引用,但不会自动成为容器运行时的环境变量。
  • 如果要将 .env 文件中的变量用作容器环境变量,仍需在 environment 字段中显式声明。

区别和联系

  • 区别env_file 用于加载外部定义的环境变量文件;environment 是直接在 docker-compose.yml 文件中定义环境变量;而 .env 文件是一个默认会被 Docker Compose 加载的环境变量文件,变量用于替换 docker-compose.yml 文件中的变量值。
  • 联系:它们都是用于设置环境变量的方式,用于配置 Docker 容器运行时的环境。environment 的优先级最高,能够覆盖 env_file.env 文件中的同名变量。
本文收录于