在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. 前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行。那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案。 第一种方案是在容器启动后手动导入,太low了不行。第二种在Spring Boot客户端连接Mysql容器时初始化数据库,你可以参考使用flyway进行数据库版本控制一文,但是这依赖客户端的能力。能不能做到Mysql容器启动时就自己初始化数据库呢?当然可以!今天就来演示一下。全部代码见文末。 2.原理 当Mysql容器首次启动时,会在
如果你的启动命令没有指定数据库那么就必须在数据库DDL脚本中声明并指定使用该数据库。否则就会实现下面的异常:
那么接下来我们将利用这一机制来实现Docker容器启动时初始化数据库。 3.自定义Dockerfile 我们编写自己的Dockerfile来实现我们的需求,这里以 Mysql:5.7 为例。不同的版本可能有一定的出入,需要详细去阅读官方文档。脚本如下: FROM mysql:5.7 LABEL OG=felord.cn COPY utf8mb4.cnf /etc/mysql/conf.d/utf8mb4.cnf COPY ./sql /tmp/sql RUN mv /tmp/sql/*.sql /docker-entrypoint-initdb.d RUN rm -rf /tmp/sql
然后你可以通过构建镜像命令构建自定义的Mysql镜像:
通过
小贴士:你可以通过 4. 总结 到此这篇关于Docker容器启动时初始化Mysql数据库的文章就介绍到这了,更多相关docker容器启动初始化数据库内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论