通过詹金斯管线上拆下搬运工容器与图像名称

问题描述 投票:1回答:1

我重新部署搬运工集装箱每当有来自gitlab触发通过詹金斯管道。所以,我不能够删除泊坞窗容器与形象的名字。我按照下面的命令:

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 {}'

但上面的命令是只能通过命令方式删除容器。但它不是通过詹金斯管道的工作

我需要像名字删除所有容器。例如,如果有5个容器与一个图像名。然后,通过形象的名字我需要删除5个集装箱。是否有可能通过管道詹金斯?

任何人都可以帮助我吗?

docker containers jenkins-pipeline docker-image
1个回答
1
投票

在詹金斯的管道,你需要逃避你$。您还使用单引号都詹金斯,并在命令你正在运行。相反,那些逃脱你的命令,你可以使用从詹金斯不同的shell语法:

sh """
  docker ps -a \
    | awk '{ print \$1,\$2 }' \
    | grep imagename \
    | awk '{print \$1 }' \
    | xargs -I {} docker rm -f {}
  """
© www.soinside.com 2019 - 2024. All rights reserved.