命令嵌套在VSTS / TFS中

我试图在VSTS上使用linux shell和Docker运行下面的嵌套命令,所以我可以停止并删除所有基于“jspsample”映像的容器:

docker rm $(docker stop $(docker ps -a -q --filter ancestor=jspsample --format="{{.ID}}")) 

在这里输入图像说明

不幸的是代理总是返回下面的错误代码:

 2017-01-31T12:06:22.0585100Z unknown shorthand flag: 'a' in -a 2017-01-31T12:06:22.0636870Z See 'docker stop --help'. 2017-01-31T12:06:22.0827520Z ##[error]/usr/bin/docker failed with return code: 125 2017-01-31T12:06:22.0850140Z ##[error]/usr/bin/docker failed with error: /usr/bin/docker failed with return code: 125 

有没有办法来运行这个嵌套的命令,或者我需要运行一个shell脚本?

“命令行”任务不支持命令嵌套。 将命令保存为shell脚本并上传到代码库,然后使用“Shell脚本”任务运行该脚本。

当我试图清理每晚的图像时遇到了同样的问题。 基本上这个命令:

 docker rmi $(docker images -aq) 

所以我创build了一个Docker VSTS任务的pull request来包含一个输出variables来存储Docker命令的输出: https : //github.com/Microsoft/vsts-docker/pull/44

有关我对此问题的调查的更多详细信息,请参阅我的StackOverflow文章: 删除远程Linux Azure托pipedocker实例上的未使用的docker映像会给出'未知简写标志:'in -aq'错误