在Makefile中获取Docker Container Id以在另一个命令中使用

时间:2017-03-31 06:14:54

标签: docker makefile

我的Makefile中有一条规则。在这个规则中,我需要操纵一些特定于docker的东西,所以我需要以可移植的方式获取容器的id。另外,我正在使用Docker Compose。这就是我所做的不起作用。

library(ggplot2)
# variant 1 (OP's own answer)
ggplot(data = d, aes(x = x, y = y)) + geom_point(colour = d$col)
# variant 2 (aosmith' comment, more "ggplot2-like")
ggplot(data = d, aes(x = x, y = y, colour = col)) + geom_point() + 
  scale_colour_identity()

我没有收到错误或输出,但我没有成功执行。

我的目标是获取运行myService的容器的uuid,然后使用该uuid将文件从容器复制到我的docker主机。

编辑: 以下工作,但我仍然想知道它是否可以进行内联变量设置

a-rule: some deps
    $(shell uuid="$(docker-compose ps -q myService)" docker cp "$$uuid":/a/b/c .)

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并意识到makefile使用$$从shell变量获取输出。所以我尝试了,这应该对您有用:

a-rule: some deps
    uuid=$$(docker-compose ps -q myService);\ 
    docker cp "$$uuid":/a/b/c .

晚点参加聚会,但我希望这对某人有帮助。