在docker-compose中使用官方MySQL映像创建多个数据库

时间:2018-08-21 08:28:16

标签: mysql database docker docker-compose multiple-databases

看看我做的要点:https://gist.github.com/MKagesawa/a03892b8c44c015cd991c2c5311f1768

问题:官方MySQL image仅支持一个MYSQL_DATABASE环境变量。 您将需要多个容器用于多个数据库。 我正在展示如何在一个容器中创建多个数据库。

解决方案::通过修改入口点并传递shell脚本,您可以将自定义sql添加到/docker-entrypoint-initdb.d中,该MySQL在运行MySQL映像时执行。

version: '3'

services:
  # Some other service connecting to mysql

  db:
    image: mysql:5.6
    environment:
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    entrypoint:
      sh -c "
        echo 'CREATE DATABASE IF NOT EXISTS firstDB; CREATE DATABASE IF NOT EXISTS secondDB;' > /docker-entrypoint-initdb.d/init.sql;
        /usr/local/bin/docker-entrypoint.sh --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
      "
    ports:
      - 3306:3306 

0 个答案:

没有答案