docker-compose 中使用env_file 加载外部的环境给内部的容器使用

5 min read

在使用 Docker Compose 构建应用时,有时需要从外部文件中获取环境变量,这时可以使用 env_file 选项。

env_file 是一个指定环境变量文件路径的列表,用于为服务定义默认环境变量。通过将常量配置在 env_file 中,你可以将环境变量值保存到文件中并复用,这使得在多个服务之间共享配置变得很容易。

docker-compose.yml 文件中,指定 env_file 的示例:

version: "3"
services:
  web:
    image: nginx
    env_file:
      - ./env/web.env

这里的 ./env/web.env 文件可以包含一些键值对,例如:

DB_HOST=localhost
DB_PORT=5432

在这个例子中,web 服务可以使用 DB_HOSTDB_PORT 环境变量,它们的值都是从 ./env/web.env 文件中读取的。

需要注意的是,env_file 可以包含多个文件,每个文件中的环境变量都会被加载。此外,如果环境变量的键名已经存在于服务的 environment 中,则来自 env_file 的值将覆盖来自 environment 的值。