簡體   English   中英

使用帶有用於測試的數據的卷構建docker映像(centos)(PostgreSQL)

[英]build docker image (centos) with volume with data for testing (postgresql)

我想使圖像具有持久性,其他開發人員可以運行此容器並使用它。 我使用此https://hub.docker.com/r/centos/postgresql-96-centos7/並執行下一步:1)使用命令運行它

docker run -d -e POSTGRESQL_USER=svcg -e POSTGRESQL_PASSWORD=svcg1 -e POSTGRESQL_DATABASE=bcs -p 5432:5432 --expose=5432 --name=postgres --net=docker-net -v psql:/var/lib/pgsql/data centos/postgresql-96-centos7 

結果是運行中的容器“ postgres”和卷“ psql”。

2)從dumpName.xml恢復數據

java -jar database_backup_starter.jar -u svcg -p svcg1 -url jdbc:postgresql://192.168.99.100:5432/bcs -m restore -path database_dump

卷“ psql”包含測試數據。

一步就能做到嗎? 例如從卷或從帶有卷的數據的泊塢窗創建映像? 怎么做?

由於此映像為PostgreSQL數據聲明了VOLUME ,因此您無法使用docker builddocker commit ,使用卷中的預填充數據從中獲取派生圖像。 它不起作用 (請參閱注釋“在Dockerfile中更改卷”)。

將數據加載到新創建的數據庫容器中的標准方法似乎是在首次啟動容器時將SQL語法數據庫轉儲放在初始化目錄中。 在此圖中,您似乎必須將數據庫轉儲包裝在Shell腳本中,並將其放在/opt/app-root/src/postgresql-init/目錄中。 對於/docker-entrypoint-initdb.d/ postgres圖像,您可以在/docker-entrypoint-initdb.d/放置一個* .sql文件。

暫無
暫無

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

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