我正在使用Docker compose来创建一个Docker网络,我的Web App
和ArangoDB
容器正在一起工作。我的目标是用arangorestore
cli-tool恢复Arango的数据,但我需要从我的Web App代码中调用它(实际上是从Python代码中调用-我正在使用Django
框架开发),我没有安装ArangoDB(这意味着bash
无法找到arangorestore命令)。如何让ArangoDB
从另一个容器执行arangorestore
?
显然,我不想在我的Web App容器中安装arangodb(这就是为什么我首先将它们分开,根据官方Docker的建议-每个容器1个服务)。所以,我需要以某种方式连接到ArangoDB容器并从那里调用arangorestore。我可以想象在ssh上这样做,但这意味着安装openssh和摆弄密钥。我可能还有其他选择吗?
容器可以通过端口转发相互通信,所以我想我可以使用它,但我不知道如何使用。
如果有人能帮助我,我将不胜感激。
1条答案
按热度按时间qyyhg6bp1#
如果您使用的是ArangoDB企业版,您可以尝试使用HotBackups HTTP API:https://docs.arangodb.com/3.11/develop/http/hot-backups/
它允许远程触发转储和恢复,所以你只需要从你的应用程序触发一个API。一些驱动程序已经支持此API,例如https://github.com/arangodb/go-driver/blob/master/client_admin_backup.go#L122