jelastic - n8n 的持久存储
问题描述
我正在使用带有使用 Jelastic 的云托管服务的 Docker 容器运行 n8n 。
我把它启动并运行得很好,但我无法让持久存储工作。因此,当我重新启动容器时,我会丢失所有的工作流程和凭据。在我的环境拓扑中,我创建了一个卷,类似于我在本地机器上拥有的卷(它确实保留了存储),但这并没有奏效。 环境存储
我是一名技术产品经理,在某种程度上是半能干的,但事实证明这超出了我的想象。
非常感谢您的帮助!
解决方案
如果我们严格遵循n8n 文档,我们将无法重现上述问题,尽管社区中有一个线程“ Can't get data to persist after system off/on ”就此事与 n8n 创始人一起结束,但没有找到任何根本原因。
我们将在此提供使用 Docker Engine CE 在 Jelastic 平台上的分步部署过程。
有很多可用的选项,但我们将停止其中的一些。
第一个选项是仅使用 Docker Engine CE,添加和不添加卷。
按照仪表板中的Marketplace选项卡,选择 Docker Engine CE并部署它
打开web ssh控制台并完全按照官方文档中的说明部署 n8n 应用程序
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
在 Jelastic 中,~/.n8n 的路径是 /root/.n8n,所以两个文件(config 和 database.sqlite)是在指定的路径中创建的。他们负责保存数据和工作流程。
部署应用程序后可以使用的另一个选项是使用导出数据功能共享配置文件。它有助于将所需的文件共享到另一个节点/环境。
如上所述部署 Docker Engine CE(步骤 1)。
更改环境拓扑并添加Extra Storage 节点或使用Extra Storage 节点创建单独的环境。
按照相应文档中的步骤共享例如 /data 目录到 Docker 引擎节点 /root/.n8n。在这种情况下,来自 /root/.n8n 的所有数据实际上都将存在于 Extra Storage 节点上的 /data 目录中。
部署 n8n 应用程序
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
提到的文件将在 Docker Engine 节点上可用,但实际上它们位于 /data 目录中的 Extra Storage 节点上。如果 /root/.n8n 目录被卸载或 Docker Engine 节点意外删除/崩溃/等,所有文件仍将存在于 Extra Storage 节点上。
请注意,该项目应通过控制台以与官方文档中提到的相同方式运行(相应的步骤 2 或步骤 4)。卷 -v 选项 ( -v ~/.n8n:/home/node/.n8n ) 是必须使用的。如果项目在没有 '-v' 选项的情况下运行,则所有工作流都保存在 docker 容器中,并在控制台中的会话关闭或 docker 容器停止后永久删除(默认使用选项 --rm)。
'--restart always' 可用于在节点/环境重新启动后运行应用程序,例如
docker run --restart always --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
要禁用“--restart always”选项,您可以使用
docker update --restart=no $(docker ps -a -q)
总结:您可以使用上述步骤运行 n8n 应用程序,它应该可以正常运行。如有任何情况,请通过您的托管服务提供商与我们联系,我们将竭诚为您提供帮助。
推荐阅读
- c# - 您如何测试公共 void 使用的私有方法内部的异常?
- localtunnel - 使用 localtunnel 请求到本地服务器的隧道时出错?
- c# - 如何在c#中解析json字符串
- spring - 在使用 Thymeleaf 实现 Spring Boot MVC 项目中的数据表时,数据表中没有任何数据填充
- java - 如何使用泛型方法将装箱原语列表转换为 java 中未装箱的对应物?
- typo3 - TYPO3:在 JavaScript 中使用 Fluid 变量?
- wordpress - 如何重定向到登录页面并再次返回到wordpress中请求的链接
- c++ - CMake:它如何找到 Boost 而找不到 Boost?
- java - JMS Consumer 阻塞其他 JMSXGroups
- ios - 应用提交时缺少 NSMicrophoneUsageDescription 警告