Docker 复制失败:stat:没有这样的文件或目录
我是新来的码头工人。我有一个maven包装器,它构建我的应用程序并将可部署文件复制到新文件夹中,然后运行它。我得到了这个错误 复制失败:stat/var/lib/docker/tmp/docker-builder102689450/app/q-runner/target/q-runner-0.0.1-runner.jar:没有这样的文件或目录 当我提到从/app/复制时,为什么要在上面的位置搜索文件 我的docker文件是Docker 复制失败:stat:没有这样的文件或目录,docker,dockerfile,Docker,Dockerfile,我是新来的码头工人。我有一个maven包装器,它构建我的应用程序并将可部署文件复制到新文件夹中,然后运行它。我得到了这个错误 复制失败:stat/var/lib/docker/tmp/docker-builder102689450/app/q-runner/target/q-runner-0.0.1-runner.jar:没有这样的文件或目录 当我提到从/app/复制时,为什么要在上面的位置搜索文件 我的docker文件是 # docker build -f Dockerfile.build
# docker build -f Dockerfile.build -t abc/notify-build .
FROM adoptopenjdk/openjdk14:ubi
WORKDIR /app
COPY ./ /app
RUN chmod +x ./mvnw && \
./mvnw package
ENV JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0
COPY /app/target/*-runner.jar /deployments/app.jar
CMD java -jar /deployments/app.jar
我已将此更改为两阶段构建并解决了它
#stage1
FROM adoptopenjdk/openjdk14:ubi as builder
RUN mkdir build
COPY . /build
WORKDIR /build
RUN chmod +x ./mvnw && \
./mvnw package
#stage2
FROM adoptopenjdk/openjdk14:ubi
COPY --from=builder /build/q-runner/target/lib/* /deployments/lib/
COPY --from=builder /build/q-runner/target/*-runner.jar /deployments/app.jar
ENV JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0
CMD java -jar /deployments/app.jar
错误消息中显示的位置是docker build上下文,即从
docker build
命令创建的位置。不能复制上下文之外的任何内容。从上下文根目录中搜索复制命令中以/
开头的任何源。您不能使用类似于。/../../../app/
的内容来导航上下文,这将引发错误。感谢您的输入。我花了一些时间来理解构建上下文。我现在已经解决了这个问题。请核对答案