记录:挂载Docker Volume的实际操作

Docker Bind Mount本质上是Mount了host filesystem和container filesystem。

意思就是,任何在filesystem内的改变(增加删除修改文件),将会反映到container filessystem内所mount的那个文件夹。

以下是mount的方法(MAC)以及可能遇到问题的troubleshooting。

前言

如果想用local file trigger,即当一个本地文件夹中的文件增加,删除,修改,可以击发该trigger,首先需要让n8n能够读到这个路径。

但目前我们处理的是两个不同“容器”内的文件,一个是Container Filesystem,一个是Host Machine Filesystem。我们得让他们互通。

### 第一反应

第一反应是从Docker的官方文件中找答案。以下附上Docker的官方文件。

https://docs.docker.com/engine/storage/volumes/

https://docs.docker.com/engine/storage/bind-mounts/

里面的内容说的不是很清楚,不太能读懂。尝试跟着做了之后,也没实现效果。

### 解决方案

最终是通过VS Code读取配置文件后,通过修改配置文件解决的。

首先,需要打开配置文件docker-compose.yml。

找到n8n section。

修改参数:

version: '3.7'

services:
  n8n:
    image: n8nio/n8n:latest
    ports:
      - "5678:5678"
    volumes:
      - n8n_storage:/home/node/.n8n
      - ~/n8n_watch_folder:/files
    environment:
      - N8N_RUNNERS_ENABLED=true

volumes:
  n8n_storage:
    external: true
    name: local-ai-packaged_n8n_storage

注意volume下的 `- ~/n8n_watch_folder:/files`。这个`n8n_watch_folder`是在我的host machine上的,即在我的电脑硬盘上的,不是container的文件。将这个文件夹挂载到n8n中的/files路径(没有的话系统会自动创建)。

### 重启Docker Composer

docker compose down
docker compose up -d

### 测试Trigger

在 Local File Trigger 节点中,将match文件夹选择为:

/files

### 激活Workflow

### 通过修改 /n8n_watch_folder 的内容测试Trigger

通过Terminal进入该文件夹的路径,通过touch创建一个测试txt文件。

$PATH: touch test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值