[英]Docker $(pwd) and bash aliases
我在 Ubuntu 16.04 中运行 Docker CE。 我为polymer-cli创建了一个Docker镜像。 这个想法是能够使用挂载当前目录的 bash 别名从一次性 docker 容器内部运行聚合物命令,运行命令然后销毁容器,如下所示:
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
变量中获取其值。
只是想分享一下,对于那些在 Windows 上使用$PWD
有问题的人,因为它会显示为空,我的 TL 为所有平台提供了很好的解决方案:
docker run --rm -it -v ${PWD:-.}:/home/node/app -u node fresnizky/polymer-cli 聚合物
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.