在Docker容器中恢复本地pg_dumpall

我浏览了网页,找不到适合我需求的解决scheme。 我一直在使用Flask而不是Django松散地学习这个教程。

我有docker-compose build命令工作没有错误,然后docker-compose up命令也工作。 后者我得到name_of_container_data_1 exited with code 0和一群gunicorn工人超时name_of_container_data_1 exited with code 0 。 没有任何服务。

这个问题可能与postgres数据库,但还不确定…

我做了什么

  1. pg_dumpall -c -U postgres > dump_ date +%d-%m-%Y“ ”%H %M_%S .sql from my local postgres instance

  2. docker-compose.yml(只是其中的一部分)

      postgres: image: postgres:latest volumes_from: - data volumes: - ./postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./backups/postgresql:/backup expose: - "5432" data: restart: always image: alpine volumes: - /var/lib/postgresql command: "true" 
  3. 我有一个包含#!/bin/bash exec psql -f backup/dump_19-06-2017_15_44_57.sql ,它应该复制到#!/bin/bash exec psql -f backup/dump_19-06-2017_15_44_57.sql -entrypoint-init.d目录中并运行。 但是,这返回

postgres_1 | /usr/local/bin/docker-entrypoint.sh:运行/docker-entrypoint-initdb.d/init.sh postgres_1 | pg_restore:[archiver]在文件头中没有find魔术string

在使用docker-compes之前,我将数据卷直接挂载到docker docker run命令,然后使用cat dump_19-06-2017_15_44_57.sql | docker exec -i <container-name> psql -U postgres恢复数据库cat dump_19-06-2017_15_44_57.sql | docker exec -i <container-name> psql -U postgres cat dump_19-06-2017_15_44_57.sql | docker exec -i <container-name> psql -U postgres

我在路上的损失恢复数据库与docker组成。

任何一个build议?

编辑:

当我docker exec -it <postgres-container> bashpsql -U postgres \l我没有看到从我看到,pre-docker-compose备份文件中的数据库。

编辑:

好的,我解决了这个问题。 .sh脚本的文件没有在正确的path上更新,因此它正在读取没有正确编辑的shell脚本。