繁体   English   中英

Docker $(pwd) 和 bash 别名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM