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

GitHub Actions部署EKS时Build & Push Image步骤找不到target目录报错如何解决

问题根因

你在Maven构建完成后重复执行了代码拉取操作,导致构建生成的target目录被清空:

  • 流水线中Build with Maven步骤已经执行mvn package成功生成了包含customer.jar的target目录
  • 后续的Checkout步骤再次调用actions/checkout@v2拉取代码,该操作默认会清理工作目录中不属于Git仓库的文件,target是构建产物,不会提交到Git仓库,因此被直接删除,Docker构建时自然找不到对应文件
解决方案

直接删除流水线中冗余的第二次Checkout步骤即可,对应要删除的配置如下:

- name: Checkout
  uses: actions/checkout@v2
  with:
    ref: ${{ github.event.pull_request.head.sha }}

默认情况下第一次执行actions/checkout@v2拉取的就是PR对应的代码,不需要重复拉取。如果你的业务逻辑确实需要明确拉取PR头提交的代码而非PR合并后的代码,只需要调整步骤顺序:将指定ref的Checkout步骤移到Set up JDK 11步骤之前,删除原来的第一次Checkout步骤即可。

可选优化建议
  • 将Dockerfile中的ADD /target/customer.jar customer.jar改为COPY target/customer.jar customer.jar,COPY指令更适合复制本地文件的场景,语义更清晰
  • 可以在Maven构建步骤后增加一步ls target,方便流水线运行时排查构建产物是否生成成功

内容的提问来源于stack exchange,提问作者favisan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:36:10