2017-10-19 127 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