我想挂载一个卷并将其添加到容器的PATH环境变量中。我尝试了以下方法,但没有一个有效。
docker run -it -v $(PWD):/app -e PATH=$PATH:/app/bin debian:jessie bash
docker run -it -v $(PWD):/app -e PATH='$PATH:/app/bin' debian:jessie bash
docker run -it -v $(PWD):/app -e PATH='$$PATH:/app/bin' debian:jessie bash
docker run -it -v $(PWD):/app -e PATH='\$PATH:/app/bin' debian:jessie bash
如何将挂载的卷附加到PATH?
4条答案
按热度按时间d4so4syb1#
如果使用-e选项,则$PATH值是主机的PATH,而不是容器的PATH。
你可以这样做:
kq0g1dla2#
在docker命令行中,你不能得到“运行时$PATH的值是什么”。因此,你不能用docker的
-e
标志将PATH附加到PATH变量。为了实现你想要做的事情,你需要在一个脚本中这样做,该脚本将作为容器的cmd / entrypoint执行。11dmarpk3#
您可以为导入的App定义一个固定的Path,并将新的Path添加到环境变量“Path”中
让我们以路径“/app”为例。在Dockerfile中添加以下行:
构建修改后的Docker
现在,您可以通过以下方式访问所有位于**〈external Directory〉/bin下并挂载到“/app**”的应用
qcbq4gxm4#
你可以使用一个shell脚本(我们称之为 * run.sh *):
然后从docker调用它: