docker - 如何在 ArangoDB docker 映像中指定配置文件?
问题描述
我正在尝试通过 docker compose 启动 ArangoDB 服务器。
使用默认配置一切正常,但我正在努力让容器中的服务器以最少的设置获取自定义配置文件
我尝试使用以下内容覆盖启动序列:
command: >
arangod --configuration /arango.conf
我已经检查并且文件存在于容器中,但是当我通过 arangoshell 通过查询检查配置文件时,它仍然引用默认设置和arangod.conf
放置在/tmp
文件夹中的文件。
有什么提示吗?
解决方案
--config /tmp/arangod.conf
在第 185 行硬编码docker-entrypoint.sh
它也会在容器的每次启动时被覆盖,/etc/arangodb3/arangod.conf
第 42 行
因此,要使用您的文件运行 arangod,您custom.conf
需要将其作为卷映射到/etc/arangodb3/arangod.conf
通过 docker 撰写
volumes:
/custom.conf:/etc/arangodb3/arangod.conf
通过 docker cli
-v /custom.conf:/etc/arangodb3/arangod.conf
更新:根据评论
custom.conf
必须包含来自的默认值/etc/arangodb3/arangod.conf
最简单的方法是custom.conf
通过 docker cli 保存默认配置并在该文件中添加/更新选项
docker run --rm arangodb/arangodb:3.7.5 sh -c 'cat /etc/arangodb3/arangod.conf' > custom.conf
它还需要/etc/arangodb3/arangod.conf
在新版本的 ArangoDB 中跟踪默认选项的更新,并将它们反映在您的custom.conf
推荐阅读
- java - Java 11:javac --release 和 -source 和 -target 命令行参数有什么区别?
- arrays - 如何读取 .txt 文件并将其存储到数组中
- javascript - Firebase 存储为 snapshot.bytesTransferred 返回奇怪的结果
- swift - @objc func addAlien 有什么问题?
- java - Spring如何在内存中加载属性文件?
- android - java.lang.IllegalStateException:无法对未密封的实例执行此操作
- java - 返回由异步方法返回的对象
- r - 如何从每一行中减去行均值
- c - Makefile 包含不同文件夹中的文件
- firebase - Firebase 身份验证在发布后不起作用