Solución:
De acuerdo con este problema de Github, podría ser posible lograr múltiples bases de datos utilizando scripts bash que tendrá que pasar en su Dockerfile
EDITAR:
Para crear múltiples bases de datos, puede usar el siguiente script:
https://github.com/mrts/docker-postgresql-multiple-databases
o
https://github.com/MartinKaburu/docker-postgresql-multiple-databases
Lo que sugiere que debe clonar uno de los repositorios de git anteriores y montarlo como un volumen en: /docker-entrypoint-initdb.d, luego podrá pasar múltiples nombres de bases de datos usando: POSTGRES_MULTIPLE_DATABASES variable
Bueno, eche un vistazo a este proyecto de Github: https://github.com/mrts/docker-postgresql-multiple-databases
De acuerdo con la documentación oficial de la imagen de Docker de Postgres:
Si desea realizar una inicialización adicional en una imagen derivada de esta, agregue uno o más scripts * .sql, * .sql.gz o * .sh en /docker-entrypoint-initdb.d (creando el directorio si es necesario ). Después de que el punto de entrada llame a initdb para crear el usuario y la base de datos de postgres predeterminados, ejecutará cualquier archivo * .sql y generará cualquier script * .sh que se encuentre en ese directorio para realizar una inicialización adicional antes de iniciar el servicio.
Encontrará el script preparado en ese repositorio que podría usar.
Por lo general, cuando necesito más de una base de datos en un proyecto de ventana acoplable, es una base de datos de prueba. Me resulta más fácil simplemente activar un segundo contenedor de la ventana acoplable, sin preocuparme por los scripts o la separación de volúmenes. El truco principal es no entrar en conflicto con los puertos predeterminados (por ejemplo, 5432 para postgres) y listo. Luego docker-compose
puede ser algo tan simple como esto:
version: '3.0'
services:
db:
image: postgres
environment:
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
ports:
- ${POSTGRES_DEV_PORT}:5432
volumes:
- app-volume:/var/lib/postgresql/data
db-test:
image: postgres
environment:
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
ports:
- ${POSTGRES_TEST_PORT}:5432
# Notice I don't even use a volume here since I don't care to persist test data between runs
volumes:
app-volume: #