【发布时间】:2021-11-20 21:29:54
【问题描述】:
我想使用环境文件 (env_file) 来传递未触及的 shell 变量。正确的语法是什么?
我的docker-compose.yaml 文件:
version: "3.9"
services:
daemon:
image: my-image
env_file:
- ./env/docker.development.env
...
我的env 文件(以前可以用,但现在不能用了):
ASPNETCORE_ENVIRONMENT=Development
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 曾经从 shell 变量中传递。它不再起作用了。
我试过了:
AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
容器中生成的环境变量始终为空。 documentation 似乎表明它应该可以工作。
当从 docker-compose.yaml environment 子句中执行此操作时,然后它可以工作,即
...
image: my-image
environment:
- ASPNETCORE_ENVIRONMENT=Development
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
但我想通过一个普通的env_file 来完成,以避免重复我的所有服务。
注意:使用 Docker Desktop for Windows w/ Linux 子系统版本 4.0.1 (68347)
【问题讨论】:
标签: docker docker-compose docker-desktop