[英]not enough space into docker container when i restore database (postgres)
[英]how to restore postgres database in docker when docker container not start?
我想在 PostgreSQL 中創建一個數據庫並在 docker 容器中恢復備份。 我能夠創建數據庫並運行 docker 容器,然后運行pg_restore
來恢復備份。 我的 Dockerfile 是:
FROM postgres:latest
ENV POSTGRES_USER postgres
ENV POSTGRES_PASSWORD 123qwe
ENV POSTGRES_DB docker_pg
COPY createTable.sql /docker-entrypoint-initdb.d/
VOLUME /var/lib/postgresql/data
然后我運行命令來恢復備份:
docker exec -i 0d96d6b59d74 pg_restore -U postgres -d docker_pg< backup_latest.sql
它工作正常。
但我的要求是,當我運行創建 docker 容器數據庫創建和恢復備份的命令時,這兩項工作同時完成,即在容器創建時。
我怎樣才能做到這一點?
但我的要求是當我運行創建 docker 容器數據庫創建和恢復備份的命令時,這兩項工作同時完成,意味着在容器創建時。
這兩項任務都可以由 Docker 容器執行,您只需將還原腳本放在docker-entrypoint-initdb.d
文件夾中。
COPY createTable.sql /docker-entrypoint-initdb.d/a_createTable.sql
COPY backup_latest.sql /docker-entrypoint-initdb.d/
當我將createTable.sql
更改為a_createTable.sql
時,它將首先創建表,然后它將恢復備份。
這些初始化文件將按照當前語言環境定義的排序名稱順序執行
或者另一個選項是創建單個 SQL 文件,順序為
ALL DDL
# then
ALL DML
所以像
COPY db.sql /docker-entrypoint-initdb.d/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.