我正在使用postgresql docker image
https://hub.docker.com/_/postgres/
要根据http://www.postgresql.org/docs/9.5/interactive/textsearch-dictionaries.html#TEXTSEARCH-SYNONYM-DICTIONARY使用同义词词典改善我的全文搜索体验,我必须将文件放入$SHAREDIR/tsearch_data
,该文件恰好是泊坞窗图片中的文件夹/usr/share/postgresql/9.5/tsearch_data
。
如何在最大限度地减少其他用户的设置负担的同时做到这一点? (当然我总是可以使用docker exec -it bash手动添加该文件)
也许Postgresql-Image的init脚本对我有帮助?
If you would like to do additional initialization in an image
derived from this one, add one or more *.sql or *.sh scripts
under /docker-entrypoint-initdb.d
(https://hub.docker.com/_/postgres/,“如何扩展此图片”)
答案 0 :(得分:1)
因此,使用Docker,您可以在一个全新的Dockerfile中使用FROM postgres
,它将使用该图像中的所有内容,但会在其上添加新的指令/图层。因此,您可以添加一个新图层,将此文件复制到图像中,如下所示:
COPY tsearch_data /usr/share/postgresql/9.5/tsearch_data
根据COPY
每best practices for writing Dockerfiles,您应该更喜欢ADD
。
这是非常明显的,但是一旦你从这个Dockerfile构建新图像(例如docker build -t=myPostgres .
) - 确保你的tsearch_data
文件与Dockerfile在同一个目录中 - 您的新映像可以推送到Docker Hub(或私有注册表,或tarball,或您使用的任何分发方法),新的Postgres映像现在容纳您的tsearch_data
文件,同时保留原始Dockerfile中的所有内容