在不写 sql 脚本的情况下,能不能在单个 mariadb 容器中创建多个数据库,直接在 docker-compose 里面

2023-11-20 10:12:49 +08:00
 fdghjk
  mariadb:
    image: mariadb
    restart: on-failure
    environment: 
      MARIADB_ROOT_PASSWORD: "xxxx"
      MARIADB_DATABASE: "v2ex"
      MARIADB_USER: "v2ex"
      MARIADB_PASSWORD: "v2expasswd"

上面的 docker-compose 运行之后,会在 mariadb 容器中创建一个名为 V2EX 的数据库,我现在想再创建一个名字为 v2explus 的数据库,有没有办法直接通过 docker-compose 语法实现?

也就是说在单个 mariadb 容器中,创建多个数据库,怎么做到?不使用 sql 脚本的情况下,有没有更方便的方法

704 次点击
所在节点    Docker
3 条回复
perfectlife
2023-11-20 10:22:14 +08:00
这个不是 docker-compose 语法支持的,能创建 也是基于 dockerfile 也有的逻辑,试试 MARIADB_DATABASE 写多个值 "v2ex v2explus" ,不行就自己定制基础镜像
Masoud2023
2023-11-20 11:30:24 +08:00
你可以写一个创建数据库的脚本放到目录里,挂载到 `/docker-entrypoint-initdb.d`。

https://hub.docker.com/_/mariadb ,文档有写,Initializing the database contents 。
julyclyde
2023-11-20 20:22:23 +08:00
容器是应该尽量幂等的,不要把“动作”性的东西放在启动命令里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/993363

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX