簡體   English   中英

AWS codebuild:即使構建步驟失敗,CODEBUILD_BUILD_SUCCEEDIN 仍然是 1

[英]AWS codebuild: CODEBUILD_BUILD_SUCCEEDIN is still 1 even build step failed

Step 65/154 : RUN  apt-get install -y python3-pip
 ---> Running in 29f078573813
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python3-pip
The command '/bin/sh -c apt-get install -y python3-pip' returned a non-zero code: 100

[Container] 2022/04/20 02:31:18 Phase complete: BUILD State: SUCCEEDED
[Container] 2022/04/20 02:31:18 Phase context status code:  Message: 
[Container] 2022/04/20 02:31:18 Entering phase POST_BUILD
[Container] 2022/04/20 02:31:18 Running command echo check CODEBUILD_BUILD_SUCCEEDING $CODEBUILD_BUILD_SUCCEEDING
check CODEBUILD_BUILD_SUCCEEDING 1

如上面的構建日志,我正在使用 AWS 代碼管道,我嘗試在 docker 中安裝 python3-pip 但失敗了。 它返回代碼 100。但是BUILD State仍然是SUCCEEDED 當我在 post_build 步驟中回顯CODEBUILD_BUILD_SUCCEEDING的值時,它的值仍然是 1,這意味着構建成功。 我認為CODEBUILD_BUILD_SUCCEEDING應該自動設置為 0。 如果CODEBUILD_BUILD_SUCCEEDING不是 1,我想退出。你能幫我弄清楚為什么即使退出代碼是 100, CODEBUILD_BUILD_SUCCEEDING仍然是 1 嗎?

如果您想檢查我的buildspec.yml

version: 0.2

phases:
  install:
    runtime-versions:
      docker: 18
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws --version
      - echo $AWS_DEFAULT_REGION
      - eval $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
      - REPOSITORY_URI=xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/test-farget-ecr-t
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
      ############################
      # Pull the previous docker image
      - docker pull $REPOSITORY_URI:latest
  build:
    commands:
      - echo Build started on `date`
      - echo Building the Docker image...
      - |
        if [[ $NEED_BUILD == "yes" ]]
        then
            docker build --cache-from $REPOSITORY_URI:latest -t $REPOSITORY_URI:latest .
            docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
        fi
  post_build:
    commands:
      - echo "check CODEBUILD_BUILD_SUCCEEDING $CODEBUILD_BUILD_SUCCEEDING"
      - bash -c "if [ "$CODEBUILD_BUILD_SUCCEEDING" == "0" ]; then exit 1; fi"
      - echo Build completed on `date`
      - echo Pushing the Docker images...
      - |
        if [[ $NEED_BUILD == "yes" ]]
        then
            docker push $REPOSITORY_URI:latest
            docker push $REPOSITORY_URI:$IMAGE_TAG
        fi
      - echo Writing image definitions file...
      - printf '{"name":"fargate-test-api-ecr","ImageURI":"%s"}' $REPOSITORY_URI:latest > imageDetail.json
artifacts:
    files:  
      - imageDetail.json
      - taskdef.json
      - appspec.yaml

不得不添加這張圖片:

在代碼構建中激活特權模式?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM