Pro*_*der 5 java gradle docker
我正在尝试运行我的 DockerFile 和Gradle build 内部 . 我已经尝试了所有方法,但无法理解。这是我的 dockerFile 它工作正常,但不要进行 gradle BUILD ,有人可以帮助我吗:
FROM gradle:4.7.0-jdk8-alpine AS build
COPY . /temp
RUN gradle build --no-daemon
FROM java:8-jdk AS TEMP_BUILD_IMAGE
COPY . /tmp
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
Run Code Online (Sandbox Code Playgroud)
输出是
'<unknown> Dockerfile: DockerFile' has been deployed successfully.
Run Code Online (Sandbox Code Playgroud)
但它并没有为我构建 Gradle。PS我是DOCKER新手,也许我在我的docker文件中做了错误的事情
您需要了解这里的多阶段构建。
FROM gradle:4.7.0-jdk8-alpine AS build
COPY . /temp
RUN gradle build --no-daemon
Run Code Online (Sandbox Code Playgroud)
这将创建一个 docker 容器,将完整的 docker 构建上下文复制到容器中并运行 gradle。您没有显示完整的控制台输出,所以我只能猜测它运行成功。此外,您没有显示您的 build.gradle 文件,因此没有人可以告诉您在哪里搜索编译结果。
FROM java:8-jdk AS TEMP_BUILD_IMAGE
COPY . /tmp
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
Run Code Online (Sandbox Code Playgroud)
使用这些行,您可以创建下一阶段的 docker 容器,然后再次将项目复制到该容器中。但我没有看到您会将构建输出从第一阶段传输到第二阶段。由于缺少此内容,生成的容器当然不包含构建结果,并且您认为它没有发生。
您需要添加一行,例如
COPY --from=build /whateverPointsToYourBuildOutput /whereverYouWantItInTheContainer
Run Code Online (Sandbox Code Playgroud)
请参阅https://docs.docker.com/engine/reference/builder/#copy
| 归档时间: |
|
| 查看次数: |
3279 次 |
| 最近记录: |