gpt4 book ai didi

linux - 在 Dockerfile 中导入 ArangoDB-Dump

转载 作者:太空狗 更新时间:2023-10-29 11:21:15 25 4
gpt4 key购买 nike

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

最佳答案

好的,因为位于 var/lib/arangodb3/databases/database-1/ 中的 ArangoDB 数据目录在其官方 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

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

关于linux - 在 Dockerfile 中导入 ArangoDB-Dump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45031332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com