我這行不工作在Dockerfile源環境文件中泊塢窗
RUN /bin/bash -c ". setup.sh ; echo $LD_LIBRARY_PATH ; make"
LD_LIBRARY_PATH
在setup.sh設置。但是,當我運行docker build .
時,echo指令只是輸出一個空字符串,make
給出一個未找到的庫的錯誤。
從Stackoverflow和其他地方的許多答案中,我會期望打印出路徑。
我錯過了什麼?在此先感謝
我這行不工作在Dockerfile源環境文件中泊塢窗
RUN /bin/bash -c ". setup.sh ; echo $LD_LIBRARY_PATH ; make"
LD_LIBRARY_PATH
在setup.sh設置。但是,當我運行docker build .
時,echo指令只是輸出一個空字符串,make
給出一個未找到的庫的錯誤。
從Stackoverflow和其他地方的許多答案中,我會期望打印出路徑。
我錯過了什麼?在此先感謝
在Dockerfile,行:
RUN /bin/bash -c ". setup.sh ; echo $LD_LIBRARY_PATH ; make"
將導致$LD_LIBRARY_PATH
變量被泊塢窗本身擴大(可以設置與ARG
或ENV
行變量)。要讓變量通過容器中的外殼進行擴展,只需用反斜槓將其隱藏即可:
RUN /bin/bash -c ". setup.sh ; echo \$LD_LIBRARY_PATH ; make"
謝謝BMitch。公認 – matteo
您可以提供[mcve](http://stackoverflow.com/help/mcve)嗎?如果您將Dockerfile中的變量轉換爲'echo \ $ LD_LIBRARY_PATH'或將其替換爲'env',會發生什麼? – BMitch
感謝您的評論。顯然是的,回聲指令的問題是我沒有擺脫美元符號,'make'中缺少的庫是不相關的。 – matteo