我想知道是否我偶然发现了一个错误,或者有什么东西没有正确记录有关Windows上的变量替换与Docker机器和组合(docker的安装版本是1.11.1)。变量替换不适用于Windows 10与泊坞窗撰写
如果我运行“泊坞窗,撰写了”命令为YML文件看起来像这样:
volumes:
- ${FOOBAR}/build/:/usr/share/nginx/html/
而这个变量不存在泊坞窗撰写将正确抱怨:
The foobar variable is not set. Defaulting to a blank string.
然而,当我将其更改为现有的环境变量:
volumes:
- ${PROJECT_DIR}/build/:/usr/share/nginx/html/
然后它会不亲佩尔利启动容器,并显示以下错误(试图访问nginx的容器会给你一台主机不可达报文):
ERROR: for nginx rpc error: code = 2 desc = "oci runtime error: could not synchronise with container process: not a directory"
如果我在泊坞快速入门终端将输出正确的路径运行echo命令我已经在环境变量中设置了。如果我将$ {PROJECT_DIR}替换为环境变量值,容器将正确运行。
如果我尝试使用官方php映像而不是官方nginx映像的环境变量,我会得到相同类型的错误消息。在这两种情况下,如果我用$ {PROJECT_DIR}文本替换环境变量的内容,docker撰写文件就可以工作。
所以这是一个错误还是我错过了什么?
一些瞎我已经成功地得到容器没有错误消息的正常启动,如果我使用以下(包含完整路径本地文件)后:
volumes:
- ${PROJECT_DIR}:/usr/share/nginx/html/
nginx的容器然后启动并运行,尽管它现在无法再找到这些文件。如果我用它包含它的路径替换变量,那么可以再次找到这些文件。
上述行为不一致。当我添加第二个环境变量进行替换时,它给出了oci运行时错误。当我删除第二个变量并且只在我还删除第一个变量时才再次开始工作时,请保留给它。之后,它突然接受$ {PROJECT_DIR}/build /,但仍然没有找到文件。
向nginx容器启动bash会话会显示该卷的装入点不包含任何文件。
在这里,我真的很茫然,码头工人在做什么以及它对我的期望。特别是因为我不知道它在扩展文件中的变量。
嘿..你有没有试过这两种方法:'FOOBAR =/yourpath docker-compose' up,这个'export FOOBAR =/yourpath && docker-compose up'? –
你能显示'PROJECT_DIR'的实际值吗? – vitr
..和码头版本 – vitr