是否存在Maven包装类型`docker`?

时间:2017-11-22 18:31:42

标签: maven docker

我试图弄清楚如何构建Docker镜像作为Maven构建过程的一部分。基本上,我想创建一个构建Docker镜像的Maven项目。我认为这是有道理的。

但是包装类型应该是什么样的?这显然不是jarwarmaven-plugin。我尝试使用docker,但这不存在。

我应该选择pom还是有办法配置自定义包类型?

pom感觉错误给我,因为我们正在生成一个输出 - 一个Docker图像 - 在常规pom类型中通常不是这种情况(父pom,bom,...)。

3 个答案:

答案 0 :(得分:1)

哇,这是雄心勃勃的!当您说要使用Maven构建docker镜像时,我假设您不会使用docker build或其他docker命令来生成最终图像。 Docker镜像是TAR文件,因此您可以使用Maven Assembly plugin生成所需的tar文件图像。

在这种情况下,您的项目"键入"将是" pom"以便项目本身生成一个POM文件,其中包含有关如何构建它的信息(例如名称和版本号)。 Assembly插件还将生成并附加相应的TAR文件,以便在使用mvn deploy或其他引用该包的命令时,将包含相关的TAR文件。

如果您使用docker命令来构建图像,那么您可能需要编写自定义Maven扩展 - 这取决于您在运行mvn deploy时想要发生的事情。这实际上取决于你的最终目标,但是如果你在Docker的范围内使用它,那么你可以用dockerfile-maven之类的插件做得更好,这将使你的构建能够驱动docker build和/的docker工作流程。或docker push

答案 1 :(得分:1)

Spotify创建了一个dockerfile-maven-plugin,允许您使用maven构建和发布Docker镜像。在项目页面上有一个example和许多其他有用的信息。

答案 2 :(得分:0)

今天,这里有一个启用<packaging>docker</packaging>的Maven docker插件:

https://github.com/fabric8io/docker-maven-plugin

文档在这里:

https://dmp.fabric8.io/

但是请注意指定<extensions>true</extensions>