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变量中获得它的值。

+0

感谢您的回答。它工作完美。 –