簡體   English   中英

docker-entrypoint.sh 忽略 /docker-entrypoint-initdb.d/my.backup

[英]docker-entrypoint.sh ignoring /docker-entrypoint-initdb.d/my.backup

我正在嘗試使用初始化運行 Postgres 的容器

FROM postgres:9.6

COPY my.backup /docker-entrypoint-initdb.d/

在我的 Dockerfile

當我運行時,output 是:

root@pc ~ % docker run  -p 5432:5555 -e POSTGRES_PASSWORD=postgres 

屬於該數據庫系統的文件將歸用戶“postgres”所有。 此用戶還必須擁有服務器進程。

數據庫集群將使用區域設置“en_US.utf8”進行初始化。 默認數據庫編碼相應地設置為“UTF8”。 默認文本搜索配置將設置為“英語”。

數據頁校驗和被禁用。

修復現有目錄 /var/lib/postgresql/data 的權限...確定創建子目錄...確定選擇默認 max_connections...100 選擇默認 shared_buffers...128MB 選擇默認時區...Etc/UTC 選擇動態共享 memory實現...posix 創建配置文件...好的運行引導腳本...好的執行后引導程序初始化...好的同步數據到磁盤...好的

成功。 您現在可以使用以下命令啟動數據庫服務器:

pg_ctl -D /var/lib/postgresql/data -l 日志文件開始

等待服務器啟動....日志:數據庫系統於 2020-10-09 00:41:58 UTC 日志:MultiXact 成員環繞保護現已啟用日志:數據庫系統已准備好接受連接日志:autovacuum 啟動器開始 完成 服務器啟動

/usr/local/bin/docker-entrypoint.sh:忽略/docker-entrypoint-initdb.d/my.backup

我檢查了文件權限

我如何確定初始化腳本忽略我的備份的原因?

如果my.backup是一個 shell 腳本,你需要給它.sh擴展名。 文檔中

如果你想在從這個派生的圖像中做額外的初始化,在 /docker-entrypoint-initdb.d 下添加一個或多個 *.sql、*.sql.gz 或 *.sh 腳本(必要時創建目錄) ). 在入口點調用 initdb 創建默認的 postgres 用戶和數據庫之后,它將運行任何 *.sql 文件,運行任何可執行的 *.sh 腳本,並獲取在該目錄中找到的任何不可執行的 *.sh 腳本,以便在進行進一步初始化之前啟動服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM