postgres docker容器中的pg_restore

我试图恢复PostgreSQL泊坞窗容器中使用pg_restore从shellcript的数据库将从docker文件调用。我得到以下错误“错误:取消自动清理任务上下文:自动分析表'tablename'”

DockerFile:

FROM postgres:9.3 ENV POSTGRES_USER postgres ENV POSTGRES_PASSWORD Abcd1234 ENV POSTGRES_DB Clarion1 COPY DB.backup /var/lib/postgresql/backup/DB.backup COPY initialize.sh /docker-entrypoint-initdb.d/initialize.sh 

initialize.sh

  #!/bin/bash set -e set -x echo "******PostgreSQL initialisation******" pg_restore -C -d DB /var/lib/postgresql/backup/DB.backup 

日志:

  server started CREATE DATABASE /docker-entrypoint.sh: running /docker-entrypoint-initdb.d/initialize.sh ++ echo '******PostgreSQL initialisation******' ++ pg_restore -C -d Clarion1 /var/lib/postgresql/backup/Clarion53.backup ******PostgreSQL initialisation****** ERROR: canceling autovacuum task 

但是,如果我尝试从主机的命令提示符从同一个备份文件恢复数据库,它工作正常。

我不认为备份恢复可以在初始化阶段完成。 启动你的容器,然后上传数据库。

 docker run -d --name mydb mypgimage docker exec mydb sh -c "pg_restore -C -d DB /var/lib/postgresql/backup/DB.backup"