在运行Docker容器时,如何附加到PATH环境变量?
我想装载一个卷并将其添加到容器的PATH环境变量中。我试过以下方法,但没有一种有效在运行Docker容器时,如何附加到PATH环境变量?,docker,Docker,我想装载一个卷并将其添加到容器的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
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?在docker命令行中,您无法获得“运行时$PATH的值是多少”。因此,不能使用docker的
-e
标志将路径附加到PATH变量。要实现您想要做的事情,您需要在脚本中执行该操作,该脚本将作为容器的cmd/entrypoint执行。如果使用-e选项,$PATH值是主机的路径,而不是容器的路径
您可以这样做:
docker run -it -v $(PWD):/app debian:jessie bash -c 'export PATH=$PATH:/app/bin; bash'
您可以为导入的应用定义固定路径,并将应用的新路径添加到环境变量“Path”中 让我们走你的路“/app”。在Dockerfile中添加以下行:
ENV PATH=${PATH}:/app/bin
构建修改后的Docker
现在,您可以访问位于-v:/app
您可以使用shell脚本(我们称之为run.sh):
#/bin/bash
路径=$PATH:/app/bin
"$@"
从docker那叫它:
docker run -it -v $(PWD):/app debian:jessie /app/run.sh bash
这几乎奏效了。除非我必须用单引号替换双引号,否则它将使用主机的路径而不是容器的路径。Docker run-c现在是--cpu共享int cpu共享(相对权重),而从技术上讲,不能附加
-e
标志是正确的,@KiwenLau在上面提供了一个有效的解决方案。
docker run -it -v $(PWD):/app debian:jessie /app/run.sh bash