一个任务:
- 按镜像名称查找正在运行的容器。只有一个这样的容器。
- 在此容器中执行命令。
它只适用于 bash:
docker exec -it $(docker ps -a | grep name | awk '{print $1}') gulp
通过 Makefile 不起作用:
生成文件:
task:
docker exec -it $(docker ps -a | grep name | awk '{print $1}') gulp
重击:
make task
docker exec -it gulp
"docker exec" requires at least 2 arguments.
See 'docker exec --help'.
我做错了什么,如何做对?
在
Makefile'ah 中,$(command arg)它具有与 shell 中不同的语义——它是对内部函数的调用 (如果没有参数,则make变量名的扩展类似)。${VAR}而要执行外部命令,则需要使用该函数shell。此外,尽管有引号,它make仍会尝试$1自行扩展,因此您需要将美元符号加倍。结果,该行应如下所示: