mysql docker镜像支持在开始时创建多个数据库

时间:2018-12-18 16:55:35

标签: mysql docker percona

我需要在启动时在一项服务中创建数据库。 F.e .: 服务:

  db:
    image: percona:5.7.24-centos
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: db1
      MYSQL_DATABASE_1: db2
      MYSQL_PASSWORD: password
    network_mode: "host"

但是不幸的是,使用图像/环境变量MYSQL_DATABASE仅支持一个。

我正在docker-compose中使用它

我可以寻求帮助吗?

1 个答案:

答案 0 :(得分:1)

因此,编写您自己的Dockerfile并复制sql脚本,它将在映像上创建一个新数据库。 像下面这样

FROM mysql

ENV MYSQL_DATABASE=test \
    MYSQL_ROOT_PASSWORD=password \

ADD yourscript.sql /docker-entrypoint-initdb.d/ 

EXPOSE 3306

因此/docker-entrypoint-initdb.d/内部的所有scips将在容器启动时执行。实际上,您的第二个数据库创建脚本将放在yourscript.sql内部,它将在容器启动时执行

您可以使用以下命令构建映像 docker build -t masterdanny/percona:5.7.24-centos

,然后在您的docker-compose文件中使用该新映像

干杯。如果您有任何问题,请告诉我。