命令嵌套在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'错误