![](/img/trans.png)
[英]Running docker images on Windows - docker-entrypoint.sh sourcing /docker-entrypoint-initdb.d
[英]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.