用作卷path的docker-compose环境variables不会得到解决

docker版本(最新的Mac)

Version 17.03.1-ce-mac5 (16048) 

我试图外化path,以便每个开发人员可以更改单个文件,以将组件映射到本地环境中的正确path。 例如,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_PATHvariables来指向我的本地path,我希望nginx能够从那里为网站提供服务。 另一个开发者应该设置

 #localhost.env INDEX_PATH=/Users/somebodyElse/whatever/public 

问题

出于某种原因,我不明白局部variables不能正确解决,至less当它用作音量的path

testing

docker-composeconfiguration

 nginx: environment: INDEX_PATH: /Users/felipe/website/public image: nginx ports: - 8081:8081 volumes: - .:/etc/nginx/html:ro //HERE I WAS EXPECTING THE PATH 

正如你所看到的,它只是解决了 (一个点代替path/ Users / felipe / website / public)

任何想法我做错了什么? 我相信这个function是支持的,但不能解决如何做到这一点。

谢谢!

env_file定义将环境variables从文件传递到容器中,但是在docker-composeparsing的yml文件中没有find它。 你可以使用的是一个.env文件 ,它在docker-compose.yml文件被parsing之前加载,你甚至可以用它来覆盖docker-compose.yml文件名。