Configurar un montaje de volcado de base de datos
Deberá montar el volcado en el contenedor para poder acceder a él. Algo como esto en docker-compose.yml:
db:
volumes:
- './db_dump:/db_dump'
Cree un directorio local llamado db_dump
y coloque su db_dump.gz
archivo allí.
Iniciar el contenedor de la base de datos
Usa POSTGRES_DB
en el entorno (como mencionó en su pregunta) para crear automáticamente la base de datos. Iniciar db
por sí mismo, sin el servidor de rieles.
docker-compose up -d db
Importar datos
Espere unos segundos para que la base de datos esté disponible. Luego, importe sus datos.
docker-compose exec db gunzip /db_dump/db_dump.gz
docker-compose exec db psql -U postgres -d dbname -f /db_dump/db_dump.gz
docker-compose exec db rm -f /db_dump/db_dump.gz
También puede crear un script para hacer esta importación, pegarlo en su imagen y luego usar un solo comando docker-compose para llamarlo. O puede hacer que su secuencia de comandos de punto de entrada verifique si hay un archivo de volcado presente y, de ser así, descomprímalo e impórtelo... lo que necesite hacer.
Iniciar el servidor de rieles
docker-compose up -d web
Automatizando esto
Si está haciendo esto a mano para preparar una nueva configuración, entonces ya está. Si necesita automatizar esto en una cadena de herramientas, puede hacer algunas de estas cosas en un script. Simplemente inicie los contenedores por separado, haga la importación de db en el medio y use sleep
para cubrir cualquier retraso en el inicio.