【发布时间】:2020-07-26 22:19:59
【问题描述】:
我是 Docker 的初学者,我正在尝试分两个阶段构建映像。 第一个 docker-file 上传到 docker-hub,结构如下:
FROM openjdk:8-jdk-alpine
ONBUILD COPY app.jar /app.jar
CMD ["java", "-jar", "/app.jar"]
第二个dockerfile:
FROM gradle:4.7.0-jdk8-alpine AS build
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN ./gradlew build
FROM <repo>/<first_docker_file>:1.0
COPY --from=build /home/gradle/src/build/libs/*.jar /app.jar
所以我需要构建我的项目->生成jar文件->将其复制到第二个docker文件的第二个docker阶段的根目录。 我需要将生成的jar文件从第一阶段复制到第二阶段的根目录,导致“ONBUILD COPY app.jar /app.jar”被触发并且正在等待根目录中的app.jar文件。我在第二个文件中提供的代码不起作用。我也无法更改第一个 docker 文件的代码。你有什么想法,我怎样才能让它工作,我应该在第二个 docker 文件中改变什么?
【问题讨论】:
-
您所描述的无法按原样工作。问:您能否更新您的帖子以解释为什么您需要分阶段构建?构建链背后的“要求”?
标签: java docker gradle dockerfile