我想创建一个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映像,从命令行加载数据,然后执行"COMMIT",但这是不可重现的,当SQL文件中的数据发生更改时,需要再次执行此操作.
怎样才能做到这一点呢?