mysql docker 图片支持在启动时创建多个数据库

mysql docker image support multiply databases creation at start

我需要在一项服务启动时创建数据库。 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"

但不幸的是,使用 image/environment 变量只支持一个:MYSQL_DATABASE.

我在 docker-compose

中使用它

我可以寻求帮助吗?

因此编写您自己的 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/ 中的所有 scipts 都将在容器启动时执行。实际上,您的第二个数据库创建脚本将进入 yourscript.sql ,它将在容器启动时执行

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

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

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