如果docker服务存在,请在Jenkinsfile内检查

我正在通过Jenkins设置CI Pipelin。

我创build了下面的Jenkinsfile:

pipeline { agent none stages { stage('Build and push image') { agent { label 'man' } steps { sh 'docker image build -t login:stage .' sh 'docker tag login:stage 192.168.66.201:5000/login:stage' sh 'docker push 192.168.66.201:5000/login:stage' } } stage('Create Service') { agent { label 'dev' } steps { sh 'docker service create --name loginService -p 40001:40001 --replicas=3 192.168.66.201:5000/login:stage' } } } } 

我知道,我可以使用docker(docker.withRegistry)的组件,但我喜欢在第一次尝试时手动完成,以确切知道发生了什么。

但我的问题是如何检查“创build服务” – 阶段,如果docker服务已经存在。 如果他存在,我喜欢执行更新语句。

你有什么想法? 使用谷歌或jenkins文档没有真正帮助我..

这样做的一个方法是:

 docker service ls | grep <service-name> && echo service-exists 

如果存在名称服务,则会执行回显。 用您打算使用的更新命令replace回显。