Docker的撰写 – 如何在一个MySQL容器中引用许多模式

我试图使用两个模式到一个MySQL容器。 我有两个连接到两个不同模式的飞行服务。 Docker Compose的.yml文件如下所示:

version: '2' services: mysqldb: image: mysql:5.6.26 environment: MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: - my - my_post ports: - "3306:3306" flyway-service1-i: image: mik/flyway-service volumes: - "../resources/db/migration:/migrations/ro" depends_on: - mysqldb links: - mysqldb command: migrate -url=jdbc:mysql://mysqldb:3306/mi -user=user -password=password -baselineOnMigrate=true -locations='filesystem:/migrations' flyway-service2-i: image: mialk/flyway-post-service volumes: - "../../../service2/src/main/resources/db/migration:/migrations/ro" depends_on: - mysqldb links: - mysqldb command: migrate -url=jdbc:mysql://mysqldb:3306/mi_post -user=user -password=password -baselineOnMigrate=true -locations='filesystem:/migrations' 

但是当我运行命令sudo docker-compose upterminal显示此消息:

错误:撰写文件'./docker-compose.yml'是无效的,因为:services.mysqldb.environment.MYSQL_DATABASE包含[“mialquiler”,“mialquiler_post”],这是一个无效的types,它应该是一个string,数字,或者是null

我traid没有指定MYSQL_DATABASE属性,但它没有工作。

有没有办法做到这一点?

MYSQL_DATABASEvariables允许创build单个数据库,并且在数据库上授予MYSQL_USER如果指定的话)。

您可以使用单个数据库来容纳多个模式。

如果您需要创build多个数据库,则可能需要运行一些自定义SQL,因为flyway无法为您创build数据库。 flywaytesting资源包括一个mysql示例 。