在使用 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_HOST
和 DB_PORT
环境变量,它们的值都是从 ./env/web.env
文件中读取的。
需要注意的是,env_file
可以包含多个文件,每个文件中的环境变量都会被加载。此外,如果环境变量的键名已经存在于服务的 environment
中,则来自 env_file
的值将覆盖来自 environment
的值。