2017-10-19 80 views
0

我這行不工作在Dockerfile源環境文件中泊塢窗

RUN /bin/bash -c ". setup.sh ; echo $LD_LIBRARY_PATH ; make"

LD_LIBRARY_PATH在setup.sh設置。但是,當我運行docker build .時,echo指令只是輸出一個空字符串,make給出一個未找到的庫的錯誤。

從Stackoverflow和其他地方的許多答案中,我會期望打印出路徑。

我錯過了什麼?在此先感謝

+0

您可以提供[mcve](http://stackoverflow.com/help/mcve)嗎?如果您將Dockerfile中的變量轉換爲'echo \ $ LD_LIBRARY_PATH'或將其替換爲'env',會發生什麼? – BMitch

+0

感謝您的評論。顯然是的,回聲指令的問題是我沒有擺脫美元符號,'make'中缺少的庫是不相關的。 – matteo

回答

1

在Dockerfile,行:

RUN /bin/bash -c ". setup.sh ; echo $LD_LIBRARY_PATH ; make" 

將導致$LD_LIBRARY_PATH變量被泊塢窗本身擴大(可以設置與ARGENV行變量)。要讓變量通過容器中的外殼進行擴展,只需用反斜槓將其隱藏即可:

RUN /bin/bash -c ". setup.sh ; echo \$LD_LIBRARY_PATH ; make" 
+0

謝謝BMitch。公認 – matteo