用作卷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文件名。