我在 Ubuntu 16.04 中运行 Docker CE。我为 polymer-cli 创建了一个 Docker 镜像。 这个想法是能够使用挂载当前目录的 bash 别名从一次性 docker 容器内部运行 polymer 命令,运行命令然后销毁容器,如下所示:
docker run --rm -it -v $(pwd):/home/node/app -u node fresnizky/polymer-cli polymer
这很完美,但是如果我为这个命令创建一个 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
变量中获取它的值。
关于linux - Docker $(pwd) 和 bash 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44259515/