rest - Docker - 复制 JAR 文件 : no such file or directory?

标签 rest spring-boot docker gradle jar

我有一个非常简单的 spring boot REST 应用程序的以下 Dockerfile:

# Prepare runtime.
FROM openjdk:8-jre-alpine AS runtime
WORKDIR /app
EXPOSE 80

# Prepare build workspace.
FROM gradle:5.3.0-jdk-alpine AS sdk
WORKDIR /build-workspace

# Setup build workspace.
USER root
RUN chown -R gradle .
USER gradle

# Copy.
COPY build.gradle .
COPY gradle.properties .
COPY src ./src

# Build, Test and publish.
RUN gradle clean bootJar

# App image.
FROM runtime
COPY --from=sdk /build-workspace/build/libs/myApplication-0.0.1-SNAPSHOT.jar ./app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

我的 docker 文件位于项目的根目录中,在 build.gradle 等旁边。

当我运行时:

docker build -t myApplication .

我收到错误:

Step 14/15 : COPY --from=sdk /build-workspace/build/libs/myApplication-0.0.1-SNAPSHOT.jar ./app.jar COPY failed: stat /var/lib/docker/overlay2/e9441fe0b968bd5776ee860bbca780d6c2037fcf90cb67d01c3b1fd349d3996f/merged/build-workspace/build/libs/myApplication-0.0.1-SNAPSHOT.jar: no such file or directory

我的 docker 文件做错了什么?

最佳答案

您可以在 RUN gradle clean bootJar 之后添加 RUN ls -l/build-workspace/build/libs/ 来查看该目录中的内容。

关于rest - Docker - 复制 JAR 文件 : no such file or directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347146/

相关文章:

spring-boot - 使用来自 Gradle 插件管理的 BOM

java - Apache Camel 服务的 Junit 测试用例

java - 在 GlassFish Server 中找不到 JAX-RS 资源

java - 如何删除 Spring Data 预测的 JSON 响应中的额外字段 'decoratedClass'?

java - @SpringBootTest : @MockBean not injected when multiple test classes

docker - 了解 docker compose 中的音量

python - jupyter notebook 停止 SSL 错误

java - Spring REST 文档 - Junit 测试中的 fieldWithPath

RESTful 删除策略

docker build 运行到 GB 大小