记录一下使用docker-compose编排部署项目。
之前一直没有尝试docker启动时执行指定的sql文件。(这次就整了)
需要注意的点就如下几个:
-
java项目里面mysql连接的url中,host使用的是docker-compose中services下mysql服务的名称
(jdbc::mysql://{docker的mysql服务名称)/{数据库名}?.......一堆参数
) -
导出数据库sql文件后,需要在开头补上"新增数据库"、"进入指定数据库"的操作
-- 创建数据库 demo create database `demo` default character set utf8 collate utf8_general_ci; -- 进入指定的数据库 demo use demo;
-
使用Dockerfile构建mysql镜像时,把需要执行的sql文件复制到docker容器里的
/docker-entrypoint-initdb.d/
(理由就是官方的docker镜像构建时,内部代码逻辑中,会从该路径下加载.sh
、.sql
文件并执行)FROM mysql:8.0.19 COPY sql/*.sql /docker-entrypoint-initdb.d/
具体的例子我直接丢我github了(需要的自取)