我试图构建一个包含MySQL和一些种子数据的docker镜像,我正在尝试在docker构建阶段向数据库中插入数据。看起来我需要启动MySQL引擎,调用命令运行一些SQL语句,然后关闭MySQL引擎。有什么好的方法来实现这个呢?
/docker-entrypoint-initdb.d
中的文件以用于填充数据库。下面是来自官方MySQL Docker Hub页面的初始化新实例部分相应段落。
当容器第一次启动时,将创建一个具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它会执行在
/docker-entrypoint-initdb.d
中找到的扩展名为.sh
、.sql
和.sql.gz
的文件。文件将按字母顺序执行。您可以通过将SQL转储挂载到该目录并提供带有贡献数据的自定义映像轻松填充mysql服务。SQL文件将默认导入到由MYSQL_DATABASE变量指定的数据库中。
ADD resources/seed_data.sh /tmp/
RUN chmod +x /tmp/seed_data.sh
RUN /tmp/seed_data.sh
RUN rm /tmp/seed_data.sh