我想用已经填充的数据创建一个MySQL Docker映像。
我想要创建3个这样的图层:
|---------------------|---------------------| Layer 3 | Customer 1 Database | Customer 2 Database | |---------------------|---------------------| Layer 2 | Database image with tables but no data | |-------------------------------------------| Layer 1 | mysql:5.6.26 | |-------------------------------------------|
我的问题是现在如何为第2层和第3层创建正确的Dockerfile?将我的empty_with_tables.sql文件加载到第2层,并将customer1.sql和customer2.sql加载到第3层的两个映像中。我读了一些有关将SQL文件放入’/docker- entrypoint- initdb.d’的内容。但这会导致数据是第一次启动图像时的。这不是我想要的。我希望数据在映像中准备就绪(例如,可以在测试中快速获得)。
我可以启动mysql映像,从命令行加载数据并执行“提交”,但这是不可复制的,当更改SQL文件中的数据时,需要再次执行该操作。
如何才能做到这一点?
最好的祝福,
因此,我对这个问题的解决方案只是不对所有内容进行分层,而是创建基础映像并使用–volumes-from从仅数据容器中注入数据库文件。