V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fdghjk
V2EX  ›  Docker

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

  •  
  •   fdghjk · 2023-11-20 10:12:49 +08:00 · 706 次点击
    这是一个创建于 404 天前的主题,其中的信息可能已经有所发展或是发生改变。
      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 脚本的情况下,有没有更方便的方法

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

    https://hub.docker.com/_/mariadb ,文档有写,Initializing the database contents 。
    julyclyde
        3
    julyclyde  
       2023-11-20 20:22:23 +08:00
    容器是应该尽量幂等的,不要把“动作”性的东西放在启动命令里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:47 · PVG 08:47 · LAX 16:47 · JFK 19:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.