Saltar al contenido

Varias bases de datos en docker y docker-compose

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: #
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *