我这行不工作在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