我正在尝试构建一个包含MySQL和一些种子数据的docker镜像,我正在试图弄清楚如何在docker构建阶段将数据插入到数据库中.
看来我需要启动MySQL引擎,调用命令来运行一些SQL语句,然后关闭MySQL引擎.关于如何做到这一点的任何好主意?
构建映像时,/docker-entrypoint-initdb.d将检查文件夹中是否有用于为数据库播种的文件。下面是官方 MySQL Docker Hub 页面上初始化新实例部分的相应段落。
当容器第一次启动时,将创建一个具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行扩展名为 、 的文件
.sh,.sql并且.sql.gz这些文件可以在/docker-entrypoint-initdb.d. 文件将按字母顺序执行。您可以通过将 SQL 转储安装到该目录中来轻松填充 mysql 服务,并提供带有贡献数据的自定义映像。SQL 文件将默认导入到 MYSQL_DATABASE 变量指定的数据库中。
这篇博文可能会对您有所帮助。本质上,要遵循的步骤是:
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
Run Code Online (Sandbox Code Playgroud)
文件seed_data.sh 包含运行mysql 服务器、登录服务器然后插入数据的代码。
| 归档时间: |
|
| 查看次数: |
2718 次 |
| 最近记录: |