官方文档请参考:https://docs.n8n.io/hosting/configuration/task-runners/#setting-up-external-mode
配置docker-compose.yml文件
bash
cd ~
mkdir n8n_python # 创建一个空文件夹
cd n8n_python
vim docker-compose.yml # 新建一个文件(固定文件名)
在文件中写入:
yml
version: '3.8'
services:
# 这是n8n主程序
n8n:
image: docker.1panel.live/n8nio/n8n:latest # 博主的镜像源
container_name: n8n # 创建的n8n容器名
restart: unless-stopped # 自动重启
ports:
- "5678:5678" # 端口映射
volumes:
- n8n_data:/home/node/.n8n # 数据持久化到本地,以后删了容器也不影响数据
environment:
- N8N_SECURE_COOKIE=false # 无需 https登录
- N8N_BLOCK_EXTERNAL_CODE_EXECUTION=false
# 为 Python 运行器新增的配置
- N8N_RUNNERS_ENABLED=true
- N8N_RUNNERS_MODE=external
- N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0
- N8N_RUNNERS_AUTH_TOKEN=y3Jo)8)TUu&eZ;]5+RpP}$ushSbHhvX-(BIdt # 改成你自己的密码
- N8N_NATIVE_PYTHON_RUNNER=true
# 这是专门为 Python 准备的"小助手"容器
task-runners:
image: docker.1panel.live/n8nio/runners:latest # 镜像源保持一致
container_name: n8n-runners
restart: unless-stopped
environment:
- N8N_RUNNERS_TASK_BROKER_URI=http://n8n:5679 # 用容器名n8n来寻址
- N8N_RUNNERS_AUTH_TOKEN=y3Jo)8)TUu&eZ;]5+RpP}$ushSbHhvX-(BIdt # 必须和上面的密码一模一样
depends_on:
- n8n
volumes:
n8n_data:
external: true # 复用原来已有的数据卷,工作流和设置不会丢
然后保存文件,直接运行:
bash
docker compose up -d
等待下载完成后,容器会自动启动
进入n8n验证
Code节点使用默认的就可以:
py
for item in _items:
item["json"]["my_new_field"] = 1
return _items

正常运行即可!