美文网首页
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