Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用maven docker插件在maven发行版上提交并保存图像_Java_Maven_Jenkins_Docker_Maven Release Plugin - Fatal编程技术网

Java 使用maven docker插件在maven发行版上提交并保存图像

Java 使用maven docker插件在maven发行版上提交并保存图像,java,maven,jenkins,docker,maven-release-plugin,Java,Maven,Jenkins,Docker,Maven Release Plugin,我正在用docker实现一个基于java的微服务。虽然我对Java和Maven很熟悉,但对docker来说,我不太熟悉 该服务将负责获取文件、解析其内容并将其写入mongodb。之后,在下次导入之前不需要该服务 解决方案应该是每次调用只使用一个文件,并且在执行maven发布时进行版本控制 用法应该类似于: import.sh file-to-be-imported.xyz Docker最终只用于运行时,而不是开发。因此,在我看来,调用docker run params之类的执行脚本就足够了 在

我正在用docker实现一个基于java的微服务。虽然我对Java和Maven很熟悉,但对docker来说,我不太熟悉

该服务将负责获取文件、解析其内容并将其写入mongodb。之后,在下次导入之前不需要该服务

解决方案应该是每次调用只使用一个文件,并且在执行maven发布时进行版本控制

用法应该类似于:

import.sh file-to-be-imported.xyz
Docker最终只用于运行时,而不是开发。因此,在我看来,调用docker run params之类的执行脚本就足够了

在maven版本中,我希望在测试运行后执行以下“特殊操作”:

  • 在目标中生成脂肪罐
  • 生成目标中名为jar(.jar)的更新导入脚本(在发布时更新),以便导入脚本
  • 将版本更新为新快照版本(默认为maven release插件)
  • 将容器更新为新版本(我想docker commit必须以某种方式用于此)
  • 提交更新的容器
  • 将更新后的容器存储到图像中(我认为是docker save完成的)
  • 我希望使用容器包含的jar对容器进行版本设置,因为对实现的更改可能也会对运行时环境或使用情况进行更改

    哪个maven插件适合该用例?对于给定插件的用例,我必须如何更改pom

    之后如何从脚本文件加载(以前导出的)最新版本的容器

    Docker Hub不是我们的选择。我们将使用jenkins从目标文件夹中绑定的最新脚本来解决映像的部署问题


    如前所述,它只需将文件名传递给jar的主方法,在导入完成之前,主方法将处理所有其他内容。没有涉及或不需要应用服务器。

    请参阅:每个人的里程数可能不同,但这可能并不适合每个人:“Docker最终只需要用于运行时,而不是开发”。对于开发中的一些或很多Docker来说,有很多很好的用例。想想你在各种环境中所获得的惊人的一致性。我认为,这实际上会解决这个问题。非常感谢桑德