我想挂载一个卷并将其添加到容器的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?
答案 0 :(得分:10)
如果使用-e选项,$ PATH值是主机的PATH而不是容器。
你可以这样做:
library(dplyr)
left_join(df1, df2, by = 'term') %>%
mutate(freq = replace(freq, is.na(freq), 0)
答案 1 :(得分:5)
在docker命令行中,您无法获得“运行时$ PATH的值”。因此,您不能使用docker的-e
标志将PATH附加到PATH变量。要实现您想要做的事情,您需要在一个脚本中执行该操作,该脚本将作为容器的cmd /入口点执行。
答案 2 :(得分:2)
您可以为导入的应用定义固定路径,并将新路径添加到环境 - 变量" 路径"
让我们走你的路径" / app "。在Dockerfile中添加以下行:
ENV PATH=${PATH}:/app/bin
构建修改后的Docker
现在,您可以访问< 下的所有应用您安装到" / app "的外部目录> / bin 通过
-v <external Directory>:/app
答案 3 :(得分:1)
您可以使用shell脚本(我们称它为 run.sh ):
#/bin/bash
PATH=$PATH:/app/bin
"$@"
并从docker调用它:
docker run -it -v $(PWD):/app debian:jessie /app/run.sh bash