您可以将初始数据添加到Dock中可用的一个卷上吗?

我将使用MySQL进行集成testing,并且希望使用运行我们的testing所需的最低设置来创build预先映射的映像。 这意味着一些自定义函数,创build我们的数据库,用户设置等(我们称之为图像X)。 我想要做的是,当每个集成testing开始时,我想用最小的设置来运行一个新的X实例。

使事情复杂化的是,我正在使用官方的mysql Docker镜像,它使用了一个数据卷,这样我在创buildX时所做的更改就不会存储在Docker docker commit ,因此在将镜像推送到registry时不会将其包含在内。

解决方法afaik将安装MySQL数据卷并将其存储在某处。 但在我看来,这使事情复杂化了很多。 现在,我不仅需要拖动mysql映像,还需要在某个地方下载(并维护)数据卷备份,并在每次集成testing之前将其应用于容器。

有没有更好的方法来解决这个问题? 数据容器会有帮助吗?

一个解决scheme可能是创build自己的mysql映像。 把Dockerfile作为官方镜像, VOLUME指令之前 ,执行你所有的数据库设置。

运气好的话,你会发现你的默认configuration现在已经被复制到卷中了。

另一个选项可能是创build一个入口点脚本,在运行时创build数据库等。