【发布时间】:2015-09-09 14:48:59
【问题描述】:
我想创建一个已填充数据的 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 文件中的数据更改时再次执行此操作。
如何做到这一点?
【问题讨论】: