下面是我在jenkins管道脚本中用于删除所有容器的代码行.....所以我可以用新版本替换容器
bat 'docker rm $(docker ps -a -q) -f'
但是我得到了错误
unknown shorthand flag: 'a' in -a
命令docker rm $(docker ps -a -q) -f
在Powershell中可以正常工作……但是当使用bat
从詹金斯调用时,它会失败
答案 0 :(得分:0)
请尝试docker rm -f $(docker ps -aq)
或
sh """
docker rm -f $(docker ps -aq)
"""
更新:
stage('Remove Containers') {
sh 'docker rm -f $(docker ps -aq)'
}
答案 1 :(得分:0)
使用“ bat”运行意味着它是Windows命令,因此Windows不知道这是什么:
$(docker ps -a -q)
完全是因为这是Linux(bash / sh)语法!
您应该将其替换为以下内容:
bat '''
FOR /F "tokens=* USEBACKQ" %%F IN (`docker ps -a -q`) DO (
SET var=%%F
)
docker rm -f %var%
'''
或者任何将第一个docker命令的输出放入变量中并用于删除容器的Windows技巧。