美文网首页
gitlab-ci ERROR: Job failed: ex

gitlab-ci ERROR: Job failed: ex

作者: 嘿嘿逗 | 来源:发表于2020-12-26 09:19 被阅读0次

gitlab-ci中执行shell脚本报

 ERROR: Job failed: exit status 1

的错误,首先看一下shell脚本

.auto_devops: &auto_devops |
    function deploy_production(){
        echo '部署production'
        SERVICE_NAME=$(docker service ls |grep $PROJECT_NAME| awk '{print $2}')  
        if [ "$SERVICE_NAME" = "$PROJECT_NAME" ]
        then
          docker service update --image $REGISTRY_URL/$PROJECT_NAME:$CI_PIPELINE_ID $PROJECT_NAME
        else
          docker stack deploy -c deploy.dev.yml Youruncle

        fi
    }

在devops的时候我们首先判断一下swarm中是否存在当前服务,如果存在需要执行update,如果不存在执行deploy,问题就出现在这句

SERVICE_NAME=$(docker service ls |grep $PROJECT_NAME| awk '{print $2}')  

这句代码当没有查找到内容的时候gitlab-ci会返回一个code 1造成shell退出,网上查到貌似是gitlab的一个问题,所以代码做如下改造即可

.auto_devops: &auto_devops |
    function deploy_production(){
        echo '部署production'
        SERVICE_NAME=$(docker service ls |grep $PROJECT_NAME| awk '{print $2}')  && true=0 || false=1 
        if [ "$SERVICE_NAME" = "$PROJECT_NAME" ]
        then
          docker service update --image $REGISTRY_URL/$PROJECT_NAME:$CI_PIPELINE_ID $PROJECT_NAME
        else
          docker stack deploy -c deploy.dev.yml Youruncle
        fi
    }

相关文章

网友评论

      本文标题:gitlab-ci ERROR: Job failed: ex

      本文链接:https://www.haomeiwen.com/subject/kpiwnktx.html