我想根据官方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界面时,似乎根本没有数据......
答案 0 :(得分:0)
好的,由于ArangoDB的数据目录(位于start_position => skip_lines
中)在其官方Dockerfile中被声明为卷,因此每次指令后该卷都将变为空我的Dockerfile。
这个问题的解决方法是,覆盖docker-entrypoint,在运行时初始化数据库(不是在构建时)或(我最喜欢的),只需更改ArangoDB的数据目录:
var/lib/arangodb3/databases/database-1/
您在ArangoDB中复制到/ arango-data或导入的所有内容都将不被删除,因为它未被声明为卷。