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

GitHub Actions中Docker构建ADD失败:文件未找到问题排查

解决GitHub Actions中Docker构建ADD指令找不到jar的问题

问题描述

在配置GitHub Actions CI/CD流程构建Docker镜像时,多次调整后仍遇到ADD指令失败的错误,错误信息如下:

ADD failed: file not found in build context or excluded by .dockerignore: stat prise/target/prise-8.18.0-SNAPSHOT-app.jar: file does not exist
Error: Process completed with exit code 1.

Dockerfile中指定添加prise/target/prise-8.18.0-SNAPSHOT-app.jar文件,GitHub Actions流程中已执行Maven多模块打包(pom.xml配置生成带app classifier的Spring Boot可执行jar),日志显示jar已生成。尝试调整docker build的上下文路径(.和..),但仍报错。

相关配置片段:
Dockerfile

FROM openjdk:11-jdk-slim

ADD prise/target/prise-8.18.0-SNAPSHOT-app.jar app.jar

EXPOSE 8080

# Run the application
ENTRYPOINT ["java", "-jar", "/app.jar"]

GitHub Actions关键步骤

- uses: actions/checkout@v3
- name: Build the Docker image
  run: docker build .. --file Dockerfile

排查与解决步骤

  • 确认Docker构建上下文与路径对应关系
    执行docker build .. --file Dockerfile时,构建上下文是当前目录的上级目录,Dockerfile中的文件路径是相对于这个上下文的。若项目结构是仓库根目录下包含prise模块和Dockerfile所在目录,需确保Maven打包生成的jar确实在上下文的prise/target路径下。

  • 检查Maven打包的工作目录
    GitHub Actions默认工作目录是仓库根目录,确保Maven打包步骤在根目录执行,这样多模块的jar才会生成在对应模块的target目录下:

    - name: Maven package
      run: mvn clean package -DskipTests
    
  • 修正docker build命令的上下文与Dockerfile路径
    核心规则:Dockerfile中的路径相对于构建上下文,--file参数指定的是Dockerfile相对于当前shell工作目录的路径。
    若Dockerfile在仓库根目录下,构建命令应为:

    run: docker build . --file Dockerfile
    

    若Dockerfile在子目录(如docker/Dockerfile),则命令应为:

    run: docker build . --file docker/Dockerfile
    

    之前使用..作为上下文可能指向仓库外的目录,导致无法找到内部的prise/target文件。

  • 检查.dockerignore规则
    确认仓库根目录的.dockerignore没有排除prise/target或target目录。若有target/规则,需添加例外保留模块的target目录:

    target/
    !prise/target/
    
  • 验证文件存在性
    在docker build步骤前添加检查步骤,确认jar文件的实际路径和名称:

    - name: Verify jar file
      run: ls -la prise/target/
    

    此步骤可直观查看文件是否存在、文件名是否与Dockerfile中的完全匹配(包括版本号、classifier)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:06:40