这是一个老问题,上面的解决方案仍然可以工作,但在以后的版本中,您可以添加.sh和.js脚本/docker-entrypoint-initdb.d/
,以防实例首次加载(/data/db
为空)时执行。
现在,Dockerfile 可能看起来像:
FROM mongo
COPY ./data-dump/ /tmp/dump/mydb/
COPY ./import_data.sh /docker-entrypoint-initdb.d/import_data.sh
CMD chmod 777 /docker-entrypoint-initdb.d/import_data.sh #this is probably too permissive
这样,import_data.sh
第一次启动容器时,将运行其中的任何内容(或您拥有的任何其他文件)。
# change the mongorestore command to match your case, adding user/password and other options.
mongorestore /tmp/dump # note we can possibly restore many DBs.
此处记录在初始化新实例部分下