【问题标题】:CircleCI branch build failing but tag build succeedsCircleCI 分支构建失败但标签构建成功
【发布时间】:2019-01-27 01:07:53
【问题描述】:

我正在 CircleCI 上构建我的项目,我的构建工作如下所示:

  build:
    <<: *defaults
  steps:
    - checkout
    - setup_remote_docker
    - run:
        name: Install pip
        command: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && sudo python get-pip.py
    - run:
        name: Install AWS CLI
        command: curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" && unzip awscli-bundle.zip && sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
    - run:
        name: Login to Docker Registry
        command: aws ecr get-login --no-include-email --region us-east-1 | sh
    - run:
        name: Install Dep
        command: curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
    - run:
        name: Save Version Number
        command: echo "export VERSION_NUM=${CIRCLE_TAG}.${CIRCLE_BUILD_NUM}" > deployment/dev/.env
    - run:
        name: Build App
        command: source deployment/dev/.env && docker-compose -f deployment/dev/docker-compose.yml build
    - run:
        name: Test App
        command: |
          git config --global url."https://${GITHUB_PERSONAL_ACCESS_TOKEN} :x-oauth-basic@github.com/".insteadOf "https://github.com/"
          dep ensure
          go test -v ./...
    - run:
        name: Push Image
        command: |
          if [[ "${CIRCLE_TAG}" =~ ^v[0.9]+(\.[0-9]+)*-[a-z]*$ ]]; then
            source deployment/dev/.env
            docker-compose -f deployment/dev/docker-compose.yml push
          else
            echo 'No tag, not deploying'
          fi
    - persist_to_workspace:
        root: .
        paths:
          - deployment/*
          - tools/*

当我将更改推送到分支时,每次在到达构建作业的 Build App 步骤时,构建都会失败并显示 Couldn't connect to Docker daemon at ... - is it running?

请帮我弄清楚为什么分支构建失败但标签构建没有。

【问题讨论】:

    标签: circleci circleci-2.0 circleci-workflows


    【解决方案1】:

    我怀疑你遇到了这个 docker-compose 错误:https://github.com/docker/compose/issues/6050

    当 docker-compose 文件中的图像名称无效时,该错误会报告一个误导性错误(您得到的错误)。

    如果您为图像名称或图像标签使用环境变量,并且该变量是从分支名称设置的,那么它会在某些分支上失败,但在其他分支上不会。

    【讨论】:

    • 我以前也遇到过这个问题,但这不是这个问题。不过谢谢。
    【解决方案2】:

    问题发生在Save Version Number 步骤上。有时该版本是.${CIRCLE_BUILD_NUM},因为没有传递任何标签。 Docker 不喜欢这些以. 开头的标签,所以我添加了一个条件检查来查看CIRCLE_TAG 是否为空,如果是,请使用一些默认版本:v0.1.0-build

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      相关资源
      最近更新 更多