运行Docker容器时,如何附加到PATH环境variables?

我想挂载一个卷并将其添加到容器的PATH环境variables中。 我试过以下,没有工作。

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?

如果您使用-e选项,则$ PATH值是主机的path而不是容器的path。

你可以这样做:

 docker run -it -v $(PWD):/app debian:jessie bash -c 'export PATH=$PATH:/app/bin; bash' 

在docker命令行中,不能得到“运行时$ PATH的值是什么”。 因此,您不能将PATH追加到PATHvariables中,使用docker的-e标志。 为了实现你想要做的事情,你需要在一个脚本中这样做,它将作为容器的cmd /入口点来执行。

您可以为导入的应用程序定义固定的path,并将新的path添加到应用程序环境variables“ path

让我们把你的path“ /应用程序 ”。 在您的Dockerfile中添加以下行:

 ENV PATH=${PATH}:/app/bin 

构build您的修改的Docker

现在,您可以访问位于<外部目录> / bin下的所有应用程序,该应用程序通过您安装到“ / app

 -v <external Directory>:/app