【问题标题】:Persistent storage for n8nn8n 的持久存储
【发布时间】:2021-11-11 14:37:57
【问题描述】:

我正在运行 n8n,使用 Docker 容器和使用 Jelastic 的云托管服务。

我启动并运行得很好,但我无法让持久存储工作。因此,当我重新启动容器时,我会丢失所有的工作流程和凭据。在我的环境拓扑中,我创建了一个卷,类似于我在本地机器上拥有的卷(它确实保留了存储),但这并没有奏效。 environment storage

我是一名技术产品经理,在某种程度上是个半能手,但事实证明这超出了我的想象。

非常感谢您的帮助!

【问题讨论】:

    标签: jelastic n8n


    【解决方案1】:

    如果我们严格遵循n8n documentation,我们将无法重现上述问题,尽管社区中有一个线程“Can’t get data to persist after system off/on”与一位 n8n 创始人讨论此问题,但没有找到任何根本原因就结束了。

    我们将在此提供使用 Docker Engine CE 在 Jelastic 平台上的逐步部署过程。

    有很多可用的选项,但我们将停止其中的几个。

    第一个选项是仅使用 Docker Engine CE,添加或不添加 volumes

    1. 按照仪表板中的Marketplace 选项卡choose Docker Engine CE 进行部署

    2. 打开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)是在指定的路径中创建的。他们负责保存数据和工作流。

    1. 如果您想使用 Jelastic volumes feature,您可以像 here 一样将默认路径 /root/.n8n 添加到 Local Filesystem。在这种情况下,此卷会在重新部署期间保存,并且还会显示在 favorites 中,以便快速访问文件。

    部署应用程序后可以使用的另一个选项是使用Exporting Data 功能共享配置文件。它有助于将所需的文件共享到另一个节点/环境。

    1. 如上所述部署 Docker Engine CE(步骤 1)。

    2. 更改环境拓扑和add Extra Storage node 或创建具有额外存储节点的separate environment

    3. 按照相应文档中的步骤进行分享,例如/data 目录到 Docker 引擎节点 /root/.n8n。在这种情况下,来自 /root/.n8n 的所有数据实际上都将存在于 Extra Storage 节点上的 /data 目录中。

    4. 部署 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
    

    disable '--restart always' 选项,你可以使用

    docker update --restart=no $(docker ps -a -q)
    

    总结:您可以使用上述步骤运行 n8n 应用程序,它应该可以正常运行。如有任何问题,请通过您的托管服务提供商与我们联系,我们将竭诚为您提供帮助。

    【讨论】:

    • 嗨。对不起我的反应慢。我尝试使用 Docker Engine CE 方法,这似乎像你说的那样工作。但我无法通过浏览器访问 n8n(“无法访问此站点”)。我也不确定我会在哪里设置变量,例如to set up basic auth
    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2015-04-06
    • 2013-04-27
    • 1970-01-01
    相关资源
    最近更新 更多