You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在S3存储桶为发布代码创建Zip包,解决AWS CodeBuild报错问题

问题根因分析
  • 路径跳转逻辑错误:CodeBuild默认工作目录为拉取代码的根目录($CODEBUILD_SRC_DIR),你执行dotnet publish时指定-o BillingArtifacts,会直接在当前工作目录下生成BillingArtifacts文件夹,执行cd ../BillingArtifacts会跳转到工作目录的上级目录查找文件夹,路径不存在所以触发exit status 2错误。
  • 拼写错误(匹配你上报的错误日志):你错误日志中跳转的目录为OutPutDirecotry,存在拼写错误,正确拼写为OutputDirectory,拼写错误也会导致路径找不到。
  • zip命令参数不全:zip -r myBuild.zip 缺少待压缩的目标路径参数,即使路径跳转正确也会执行失败。
  • 冗余配置兼容问题:你配置的-p:PublishDir=.\publish用了Windows风格的反斜杠,如果用Linux构建环境会识别异常,且-o参数已经指定了输出目录,该参数属于冗余配置可直接删除。
修正后的完整buildspec配置
version: 0.2 # buildspec必填的版本声明
phases:
  build:
    commands:
       - echo Build started on `date`
       - dotnet build BillingData/BillingData.sln
  post_build:
    commands:
      - echo Publish started on `date`      
      - dotnet publish BillingData/BillingData.sln -c Release -r linux-x64 -o BillingArtifacts
      - cd BillingArtifacts # 直接进入当前工作目录下的BillingArtifacts文件夹
      - zip -r myBuild.zip . # 压缩当前目录所有内容到myBuild.zip
artifacts: # 配置后才会自动将产物上传到你指定的S3存储桶
  files:
    - BillingArtifacts/myBuild.zip
可选优化方案

如果你不需要跳转目录,可以直接在根目录执行压缩命令,简化配置:

post_build:
  commands:
    - echo Publish started on `date`      
    - dotnet publish BillingData/BillingData.sln -c Release -r linux-x64 -o BillingArtifacts
    - zip -r myBuild.zip BillingArtifacts/*
artifacts:
  files:
    - myBuild.zip

内容的提问来源于stack exchange,提问作者90-211456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:54:04