我有一个项目,由两个使用八个 Postgres 数据库的主要 Java 应用程序组成,那么 docker-compose 有没有办法构建八个不同的数据库,以便每个数据库都有不同的所有者和密码?我什至可以在 docker-compose 中做到这一点吗?
例子:
services:
postgresql:
build: db/.
ports:
- "5432:5432"
environment:
- POSTGRES_DB=database1
- POSTGRES_USER=database1
- POSTGRES_PASSWORD=database1
我知道我可以将所有 .sql 文件放在 docker-entrypoint-initdb.d 中,Postgres 会自动生成它们,但是我如何声明哪个 .sql 文件放在哪个数据库中?
原文由 Tomislav Mikulin 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据这个 Github 问题,可能可以通过使用 bash 脚本来实现多个数据库,您必须在 Dockerfile 中传递这些脚本
编辑:
要创建多个数据库,您可以使用以下脚本:
https://github.com/mrts/docker-postgresql-multiple-databases
或者
https://github.com/MartinKaburu/docker-postgresql-multiple-databases
这表明您必须克隆上述 git 存储库之一并将其作为卷安装到: /docker-entrypoint-initdb.d 然后您将能够使用以下方法传递多个数据库名称: POSTGRES_MULTIPLE_DATABASES 变量