在Dockerfile中导入ArangoDB-Dump

帕斯卡

我想基于官方的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的数据目录(位于其中)在其正式的Dockerfile中var/lib/arangodb3/databases/database-1/声明为,因此在我的Dockerfile中的每条指令之后,该卷将再次变为空。

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章