在Docker容器中构建Java Gradle项目?

5
我们有一个使用Gradle构建的Java项目,需要Java 8等。开发人员在他们的机器上拥有不同的Java版本(不同的项目,IDEA对Open JDK一直很挑剔,但我们使用它来运行我们的应用程序),我们希望能够轻松地使用正确的Java版本进行构建。
想法是使用Docker完成这项任务,即启动一个带有正确Java版本的Docker容器,然后将其用于构建(编译,测试,汇编等)。
这是一个好主意吗?我该如何做到这一点?例如,我告诉Gradle启动容器,并告诉它使用其javac?还是我启动容器,在其中挂载项目代码的卷,并在该容器中使用Gradle构建?这样做的缺点是人们需要先启动一个容器,但我想这可以通过脚本来实现。
有人这样做过吗?

如果使用“构建服务器”进行开发工作是合理的,那么在Docker容器中打包该“构建服务器”,以便每个开发人员都可以运行自己的服务器也是合理的。这就需要开发人员熟悉使用Docker,但在今天的软件开发世界中,这是一项非常有用的技能,因此我不会说这是一个缺点,而是一个优点。 - hyde
无论如何,这是一道基于观点的问题,没有单一正确答案,因此投票以该原因关闭...我想知道 programmers.stackexchange.com 是否已经有了很多类似这样的问题? - hyde
@hyde 程序员不接受基于观点的问题或者征求意见的问题。对于这些问题,我们采用与 Stack Overflow 相同的关闭原因。 - Thomas Owens
@ThomasOwens 是的,那么问题就必须被表述为“如何在构建Gradle项目的开发人员中使用Docker”。我认为这将更多地成为PSE而不是SO问题,并且也是相关的,但不太确定... - hyde
2个回答

1

0

我使用Gradle容器来构建我的SpringBoot Java项目。你也可以尝试类似的方法。

Dockerfile

FROM gradle:jdk8
COPY . /home/gradle/project
WORKDIR /home/gradle/project
ENTRYPOINT ["gradle"]
CMD ["bootRepackage"]

您还可以在https://hub.docker.com/_/gradle/找到有关不同Gradle容器的信息,该网站展示了如何将主机目录挂载为容器卷并进行构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接