有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用专用MySQL数据库停靠Java应用程序

我有一个Java应用程序,它需要一个MySQL/MariaDB数据库才能工作。我的目标是为它构建一个独立的Docker映像。我查阅了很多教程,但它们似乎与我想要实现的目标相矛盾。这让我开始怀疑我的目标是否合适,但我仍然不明白为什么这不是一个合理的目标

我不喜欢共享MySQL服务器,使其上有多个数据库。重要的是应用程序的数据库在那里,而不是别的

建立这样一个Docker形象的正确方法是什么

我是否使用docker compose制作了两个容器,一个用于DB,一个用于Java应用程序?这似乎是大多数人的建议,但我想要一个图像,可以从注册表中提取,并将开箱即用

我是否从MySQL/MariaDB映像生成单个映像,并向其中添加Java和我的应用程序

我是否从OpenJDK映像生成单个映像,并将MySQL/MariaDB和我的应用程序添加到其中

还有别的办法吗

非常感谢


共 (1) 个答案

  1. # 1 楼答案

    docker映像设计为运行单个命令,因此,尽管可以将应用程序文件添加到MySQL映像(反之亦然),但要同时运行这两个映像还是很困难的

    您使用了docker-compose,这将允许您定义这两个容器以及它们的运行方式。这实际上可能会使您的部署比独立容器更简单

    您可能还希望考虑不发送MySQL容器。为什么不让应用程序能够创建所需的数据库,并为用户添加一个配置选项来告诉它在哪里可以找到数据库服务器?如果用户选择使用停靠的MySQL实例,他们只需拉取香草mysql:latest映像并自行配置端口即可

    或者,一旦将该功能添加到应用程序中,就可以使用vanilla MySQL实例发布一个Compose解决方案,只需要一个自定义Dockerfile