我将使用MySQL进行集成测试,并且我希望使用运行测试所需的最小设置来创建预烘焙图像。这意味着一些自定义函数,我们的数据库创建,用户设置等(让我们调用此图像X)。我想要做的是,当每个集成测试开始时,我想用最少的设置拉动并运行一个新的X实例。
使事情变得复杂的是我使用官方mysql Docker镜像使用数据卷,这样我在创建X时所做的更改不存储在docker commit
上,因此当我推送时不包括图像到注册表。
afaik的解决方法是挂载MySQL数据卷并备份我存储在某处的数据卷。但在我看来,这使事情变得非常复杂。现在我不仅要拉取mysql图像,还需要在某处下载(并维护)数据卷备份,并在每次集成测试之前将其应用到容器中。
有没有更好的方法来解决这个问题?数据容器会有帮助吗?
答案 0 :(得分:3)
一种解决方案可能是创建自己的mysql映像。将Docker文件作为官方映像,然后在 VOLUME
指令之前使用,进行所有数据库设置。
运气好的话,您应该会发现默认配置在创建时已复制到卷中。
另一种选择可能是创建一个入口点脚本,在运行时创建数据库等。