我想知道是否我偶然發現了一個錯誤,或者有什麼東西沒有正確記錄有關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