Personalmente creo que el dockerfile del postgres no es necesario, entiendo que el objetivo es tener una imagen con la base de datos ya creada, pero veo más práctico realizar la carga de las tablas en el momento de generar el contenedor. En la carpeta database tengo la estructura database/initdb/1.sql, donde 1.sql = up.sql. Entonces el docker-compose queda asà (utilizo la versión 3.9):
version: "3.9"
services:
postgres:
image: postgres:10.3
container_name: platzi-events-cqrs-db
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: mysecretpassword
POSTGRES_DB: mydb
volumes:
- ./database/initdb:/docker-entrypoint-initdb.d
ports:
- "54321:5432"
command: [ "postgres" ]
nats:
image: nats-streaming:0.9.2
container_name: platzi-events-cqrs-nats
restart: always
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?