繁体   English   中英

docker-compose环境变量用作卷的路径无法解析

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM