在docker构建中种植mysql数据

12

我试图构建一个包含MySQL和一些种子数据的docker镜像,我正在尝试在docker构建阶段向数据库中插入数据。看起来我需要启动MySQL引擎,调用命令运行一些SQL语句,然后关闭MySQL引擎。有什么好的方法来实现这个呢?

2个回答

7
当镜像构建完成后,将检查文件夹/docker-entrypoint-initdb.d中的文件以用于填充数据库。下面是来自官方MySQL Docker Hub页面初始化新实例部分相应段落。

当容器第一次启动时,将创建一个具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它会执行在/docker-entrypoint-initdb.d中找到的扩展名为.sh.sql.sql.gz的文件。文件将按字母顺序执行。您可以通过将SQL转储挂载到该目录并提供带有贡献数据的自定义映像轻松填充mysql服务。SQL文件将默认导入到由MYSQL_DATABASE变量指定的数据库中。


3
这篇博客文章或许会对你有所帮助。 基本上,需要遵循以下步骤:
1. 创建一个文件(比如seed_data.sh),并将其放在Dockerfile所在的同一目录下。
2. 在Dockerfile中添加以下行。
ADD resources/seed_data.sh /tmp/
RUN chmod +x /tmp/seed_data.sh
RUN /tmp/seed_data.sh
RUN rm /tmp/seed_data.sh

文件 seed_data.sh 包含用于运行 mysql 服务器,登录并插入数据的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接