我试图在里面运行我的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"]
输出为
'<unknown> Dockerfile: DockerFile' has been deployed successfully.
但它不是为我构建Gradle。p.s.我是新的DOCKER,也许我在我的DOCKER文件做错了东西
您需要了解这里的多级构建。
FROM gradle:4.7.0-jdk8-alpine AS build
COPY . /temp
RUN gradle build --no-daemon
这将创建一个docker容器,将完整的docker构建上下文复制到容器中并运行gradle。您没有显示完整的控制台输出,所以我只能猜测运行成功。而且你也没有展示你的身材。没有人可以告诉你在哪里搜索编译结果。
FROM java:8-jdk AS TEMP_BUILD_IMAGE
COPY . /tmp
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
用这些行创建下一阶段的docker容器,并再次将项目复制到容器中。但是我没有看到您将构建输出从第一阶段传输到第二阶段。由于缺少这个,生成的容器当然不包含构建结果,并且您认为它没有发生。
你需要添加一行,如
COPY --from=build /whateverPointsToYourBuildOutput /whereverYouWantItInTheContainer
看到https://docs.docker.com/engine/reference/builder/复制