Docker-如果未在本地构建应用,则COPY失败?

时间:2019-12-18 20:33:50

标签: docker gradle jar dockerfile build.gradle

我有以下git commit -n

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 # Accept build args. ARG ORG_GRADLE_PROJECT_mavenUser ARG ORG_GRADLE_PROJECT_mavenPassword # 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 build bootJar # App image. FROM runtime COPY /build/libs/myApp-0.0.1-SNAPSHOT.jar ./app.jar ENTRYPOINT ["java", "-jar", "app.jar"] MVC网络应用,并且spring boot位于dockerfile等旁边的根目录中

当我跑步时:

build.gradle

我得到:

docker build -t myApp .

当我首先使用gradle在本地构建应用程序时,dockerfile可以工作-大概可以看到构建文件夹。

如何更改我的dockerfile,以便不需要本地构建?

1 个答案:

答案 0 :(得分:0)

使用COPY --from=sdk /build-workspace/libs/myApp-0.0.1-SNAPSHOT.jar ./app.jar

使用--from=sdk,您正在告诉Docker从gradle构建阶段复制文件,如果没有,则Docker将从您的本地文件系统复制文件。

有关更多信息,see