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

执行docker build时ADD *.jar报错:未指定源文件

Docker构建镜像时ADD指令找不到JAR文件报错

执行docker build src/main/docker/构建Docker镜像时,Dockerfile第8步ADD *.jar contourservice.jar执行失败,收到守护进程错误:

Error response from daemon: ADD failed: no source files were specified


相关文件内容

Dockerfile

FROM openjdk:11-jre-slim
        
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
    JHIPSTER_SLEEP=0 \
    JAVA_OPTS=""

# 添加jhipster用户以非root身份运行应用
RUN adduser --disabled-login --shell /bin/sh --gecos "" jhipster
WORKDIR /home/jhipster

ADD entrypoint.sh entrypoint.sh
RUN chmod 755 entrypoint.sh && chown jhipster:jhipster entrypoint.sh
USER jhipster

ADD *.jar contourservice.jar

ENTRYPOINT ["./entrypoint.sh"]

EXPOSE 8084

entrypoint.sh

#!/bin/sh

echo "The application will start in ${JHIPSTER_SLEEP}s..." && sleep "${JHIPSTER_SLEEP}"
exec java "${JAVA_OPTS}" -Djava.security.egd=file:/dev/./urandom -jar "${HOME}/contourservice.jar" "$@"

控制台输出

Step 8/10 : ADD *.jar contourservice.jar
Error response from daemon: ADD failed: no source files were specified

项目目录结构

项目目录结构截图


问题原因

执行docker build src/main/docker/时,Docker的构建上下文被限定为src/main/docker/目录,而项目编译生成的JAR文件存放在项目根目录的target/文件夹中(从目录截图可见该文件夹),当前上下文里不存在任何.jar文件,因此ADD指令触发找不到源文件的错误。


解决方案

方案1:使用项目根目录作为构建上下文(推荐)

修改构建命令,以项目根目录为上下文,并指定Dockerfile的路径:

docker build -f src/main/docker/Dockerfile .

同时更新Dockerfile中的ADD指令,指定JAR文件的正确路径:

ADD target/*.jar contourservice.jar

方案2:临时复制JAR文件到docker目录(不推荐)

先将target/下的JAR文件复制到src/main/docker/目录,再执行原构建命令:

cp target/*.jar src/main/docker/
docker build src/main/docker/

此方式会污染src/main/docker/目录,仅适合临时测试使用。


内容的提问来源于stack exchange,提问作者Шатов Данил

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:20:40