docker-compose部署springboot+mysql(mysql制作镜像时执行指定sql文件)

记录一下使用docker-compose编排部署项目。
之前一直没有尝试docker启动时执行指定的sql文件。(这次就整了)

需要注意的点就如下几个:

  1. java项目里面mysql连接的url中,host使用的是docker-compose中services下mysql服务的名称
    (jdbc::mysql://{docker的mysql服务名称)/{数据库名}?.......一堆参数)

  2. 导出数据库sql文件后,需要在开头补上"新增数据库"、"进入指定数据库"的操作

    -- 创建数据库 demo
    create database `demo` default character set utf8 collate utf8_general_ci;
    -- 进入指定的数据库 demo
    use demo;
    
  3. 使用Dockerfile构建mysql镜像时,把需要执行的sql文件复制到docker容器里的/docker-entrypoint-initdb.d/
    (理由就是官方的docker镜像构建时,内部代码逻辑中,会从该路径下加载.sh.sql文件并执行)

    FROM mysql:8.0.19
    COPY sql/*.sql /docker-entrypoint-initdb.d/
    

具体的例子我直接丢我github了(需要的自取)

posted on 2020-11-10 16:24  Ashiamd  阅读(165)  评论(0编辑  收藏  举报