gpt4 book ai didi

docker - 带有卷的 Arangodb、Foxx 和 Docker

转载 作者:行者123 更新时间:2023-12-01 12:11:47 25 4
gpt4 key购买 nike

我正在使用 ArangoDB 并开发 Foxx 应用程序。 ArangoDB 使用此图像托管在 Docker 容器中 https://store.docker.com/images/arangodb .我有另一个运行我的应用程序前端的 Docker 容器。

我创建了一个卷来保存数据库数据,我还创建了一个卷来保存 Foxx 应用程序数据:

  - type: volume
source: databasedev
target: /var/lib/arangodb3
- type: volume
source: foxx
target: /var/lib/arangodb3-apps

最后,我创建了一个从我的 Foxx 源文件夹到我的 ArangoDB 容器中的 Foxx 应用程序文件夹的绑定(bind)挂载:

  - type: bind
source: C:\\[pathtosource]\\src\\foxx
target: /var/lib/arangodb3-apps/_db/poflow

在我编写 Foxx 源代码时,大约有 40-50% 的时间会被删除。我试过在 Foxx 卷上使用“不复制”选项,但这似乎只会让情况变得更糟。

在我的容器在我的前端容器中组成一个节点脚本后,尝试安装我的 Foxx 服务并将其设置为开发模式。基本上,它会即时压缩我的 Foxx 源代码并进行安装。但是它经常发现我的 Foxx 源文件夹是空的并且失败了,这时我恢复了文件,并写下来,然后备份并重试。

我做错了吗?有什么我想念的吗?似乎 ArangoDB 并不是每次都保留 Foxx 数据。

最佳答案

我可能已经找到了解决方案。我没有直接在我的 compose 文件中使用公共(public) ArangoDB docker 镜像,而是转而使用 dockerfile 构建我自己的镜像。

之前:

database:
image: "arangodb"

之后:

  database:
image: "arangodb"
build:
context: .
dockerfile: dock-arango-dev.Dockerfile

然后我的 docker 文件看起来像这样:

FROM arangodb
ENV ARANGO_ROOT_PASSWORD supersecurepass
WORKDIR /var/lib
COPY "./src/foxx" "./arangodb3-apps/_db/foxxapp"
EXPOSE 8529

我认为 docker 文件中的复制指令就是诀窍。到目前为止,它一直运行良好。如果继续这样下去,我会在几天后接受这个答案。

编辑:不幸的是,这并没有 100% 解决问题,尽管它有所改进。所以我不会将此标记为答案,但这是一个很有帮助的步骤。

编辑:使用这种方法几个星期后,我只失败了一次。所以也许那是侥幸。但这种方法肯定比我以前的技术更有效。所以我将其标记为答案。如果有人提供更可靠的更好的工作流程或方法,我会更改答案。

关于docker - 带有卷的 Arangodb、Foxx 和 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265768/

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