[英]docker-compose environment variables used as path for volumes don't get resolved
Docker版本(适用于Mac的最新版本)
Version 17.03.1-ce-mac5 (16048)
我试图外部化路径,以便每个开发人员都可以更改单个文件,以将组件映射到其本地环境中的正确路径。 例如,nginx在一个静态网站上提供服务器。
#localhost.env
INDEX_PATH=/Users/felipe/website/public
这是我的compose.yml
nginx:
image: nginx
ports:
- "8081:8081"
volumes:
- ${INDEX_PATH}:/etc/nginx/html:ro
env_file:
- ./localhost.env
简而言之,我定义INDEX_PATH变量以指向我的本地路径,并且我希望nginx从那里为网站提供服务。 然后,另一个开发人员应该设置
#localhost.env
INDEX_PATH=/Users/somebodyElse/whatever/public
由于某种原因,我不了解局部变量,至少在将其用作卷的path时,无法以某种方式无法正确解析。
docker-compose配置
nginx:
environment:
INDEX_PATH: /Users/felipe/website/public
image: nginx
ports:
- 8081:8081
volumes:
- .:/etc/nginx/html:ro //HERE I WAS EXPECTING THE PATH
如您所见,它只是解析为。 (以点代替路径/ Users / felipe / website / public)
知道我在做什么错吗? 我认为此功能受支持,但无法解决该问题。
谢谢!
env_file
定义将环境变量从文件传递到容器,但不会在yml文件的docker-compose解析中获取。 您可以使用的是.env
文件 ,该文件在解析docker-compose.yml文件之前已加载,您甚至可以使用它覆盖docker-compose.yml文件名本身。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.