每当gitlab通过jenkins管道触发时,我都会重新部署docker容器。所以我不能移除带有镜像名称的docker容器。我遵循了以下命令:
sh 'docker ps -f name=imagename -q | xargs --no-run-if-empty docker container stop和
sh 'docker container ls -a -fname=imagename -q | xargs -r docker container rm'以上命令无法删除镜像名称的容器。
我也尝试过下面的命令。
sh 'docker ps -a | awk '{ print $1,$2 }' | grep imagename | awk '{print $1 }' | xargs -I {} docker rm -f {}'但是上面的命令只能通过命令模式删除容器。但是它不是通过Jenkins管道工作的。
我需要删除所有带有镜像名称的容器。例如,如果有5个容器和一个镜像名称。然后,通过该镜像名称,我需要删除5个容器。有没有可能通过jenkins管道?
有谁能帮帮我吗?
发布于 2019-02-01 21:04:26
在Jenkins管道中,您需要转义$。对于Jenkins和正在运行的命令,您也使用了单引号。您可以使用与Jenkins不同的shell语法,而不是转义命令中的那些语法:
sh """
docker ps -a \
| awk '{ print \$1,\$2 }' \
| grep imagename \
| awk '{print \$1 }' \
| xargs -I {} docker rm -f {}
"""https://stackoverflow.com/questions/54479199
复制相似问题