Docker $(pwd)和bash别名
问题描述:
我在Ubuntu 16.04中运行Docker CE。我为聚合物创建了一个Docker镜像。 的想法是能够从使用bash别名安装在当前目录一次性搬运工容器内运行聚合物的命令,运行命令,然后破坏容器,就像这样:
docker run --rm -it -v $(pwd):/home/node/app -u node fresnizky/polymer-cli polymer
这工作perfectlty,但如果我创建一个bash别名这个命令:
alias polymer="docker run --rm -it -v $(pwd):/home/node/app -u node fresnizky/polymer-cli polymer "
然后$(PWD)指向我的主目录,而不是我的当前目录。
任何人都知道我可以如何解决这个问题?
答
问题在于,因为您使用了双引号,所以在alias
声明时,命令替换正在完成,而不是之后。
使用单引号:
alias polymer='docker run --rm -it -v $(pwd):/home/node/app -u node fresnizky/polymer-cli polymer'
此外,而不是使用命令替换,$(pwd)
可以使用可变PWD
环境,这将扩大到相同的值pwd
。实际上,pwd
命令也从PWD
变量中获得它的值。
感谢您的回答。它工作完美。 –