繁体   English   中英

在Dockerfile中导入ArangoDB-Dump

[英]Importing ArangoDB-Dump in Dockerfile

我想基于官方ArangoDB映像构建Docker镜像。 在Dockerfile中,我复制并执行shell脚本。 此脚本下载并解压缩Arango转储并使用arangorestore --input-directory "dump"导入它。

控制台日志显示导入已成功完成:

# Connected to ArangoDB 'http+tcp://127.0.0.1:8529'
# Re-creating document collection 'pages'...
# Loading data into document collection 'pages'...
# Re-creating edge collection 'links_bar'...
# Loading data into edge collection 'links_bar'...
Processed 2 collection(s), read 143363388 byte(s) from datafiles, sent 19 batch(es)

但是,当我启动此图像的容器并转到Arango Web界面时,似乎根本没有数据......

好的,因为ArangoDB的数据目录(位于var/lib/arangodb3/databases/database-1/ )在其官方Dockerfile中声明为Volume ,所以在我的Dockerfile中的每条指令后,该卷将再次变为空。

解决此问题的方法是,覆盖docker-entrypoint,并在运行时(不是在构建时)或(我最喜欢的)初始化数据库,只需更改ArangoDB的数据目录:

mkdir /arango-data
chmod 777 /arango-data
sed -i.bak 's/^\(directory = \).*/\1\/arango-data/' /etc/arangodb3/arangod.conf

您在ArangoDB中复制到/ arango-data或导入的所有内容都不会被删除,因为它未被声明为卷。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM