AWS CodeBuild 抛出错误“CLIENT_ERROR 消息:找不到匹配的工件路径

问题描述 投票:0回答:1

AWS CodeBuild 抛出错误“CLIENT_ERROR 消息:找不到匹配的工件路径”。

我正在尝试使用 CodeCommit 存储库构建一个 docker 应用程序,构建阶段似乎顺利通过,但工件文件路径存在一些问题。

这是链接,我参考了https://youtu.be/MDMH_XXDbrI 时间戳:48:18 到 56:24

这是我的构建规范:

version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
      - REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
    build:
     commands:
      - echo Build started on `date`
      - echo Building the Docker image...          
      - docker build -t $REPOSITORY_URI:latest .
      - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG    
     post_build:
      commands:
      - echo Build completed on `date`
      - echo Pushing the Docker image...
      - docker push $REPOSITORY_URI:latest
      - docker push $REPOSITORY_URI:$IMAGE_TAG
      - echo Writing image definitions file...
      - printf '[{"name":"%s","imageUri":"%s"}]' "$IMAGE_REPO_NAME" "$REPOSITORY_URI:$IMAGE_TAG" > imagedefinitions.json
artifacts:
  files: imagedefinitions.json

这是构建日志:


[Container] 2023/05/06 06:40:30 Phase complete: PRE_BUILD State: SUCCEEDED
[Container] 2023/05/06 06:40:30 Phase context status code:  Message: 
[Container] 2023/05/06 06:40:30 Entering phase BUILD
[Container] 2023/05/06 06:40:30 Phase complete: BUILD State: SUCCEEDED
[Container] 2023/05/06 06:40:30 Phase context status code:  Message: 
[Container] 2023/05/06 06:40:30 Entering phase POST_BUILD
[Container] 2023/05/06 06:40:30 Phase complete: POST_BUILD State: SUCCEEDED
[Container] 2023/05/06 06:40:30 Phase context status code:  Message: 
[Container] 2023/05/06 06:40:30 Expanding base directory path: .
[Container] 2023/05/06 06:40:30 Assembling file list
[Container] 2023/05/06 06:40:30 Expanding .
[Container] 2023/05/06 06:40:30 Expanding file paths for base directory .
[Container] 2023/05/06 06:40:30 Assembling file list
[Container] 2023/05/06 06:40:30 Expanding imagedefinitions.json
[Container] 2023/05/06 06:40:30 Skipping invalid file path imagedefinitions.json
[Container] 2023/05/06 06:40:30 Phase complete: UPLOAD_ARTIFACTS State: FAILED
[Container] 2023/05/06 06:40:30 Phase context status code: CLIENT_ERROR Message: no matching artifact paths found

我不知道这里出了什么问题......

amazon-web-services yaml aws-codebuild
1个回答
0
投票

我在 buildspec.yml 文件的最后一行做了一些修改。

version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
      - REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
  build:
    commands:
      - echo Build started on `date`
      - echo Building the Docker image...          
      - docker build -t $REPOSITORY_URI:latest .
      - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG    
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker image...
      - docker push $REPOSITORY_URI:latest
      - docker push $REPOSITORY_URI:$IMAGE_TAG
      - echo Writing image definitions file...
      - printf '[{"name":"%s","imageUri":"%s"}]' "$IMAGE_REPO_NAME" "$REPOSITORY_URI:$IMAGE_TAG" > imagedefinitions.json
artifacts:
    files: 
      - 'imagedefinitions.json'

构建成功

© www.soinside.com 2019 - 2024. All rights reserved.