在Dockerfile中导入ArangoDB-Dump

时间:2017-07-11 10:00:57

标签: linux docker arangodb

我想根据官方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界面时,似乎根本没有数据......

1 个答案:

答案 0 :(得分:0)

好的,由于ArangoDB的数据目录(位于start_position => skip_lines中)在其官方Dockerfile中被声明为,因此每次指令后该卷都将变为空我的Dockerfile。

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

var/lib/arangodb3/databases/database-1/

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