Docker環(huán)境中部署n8n支持Python節(jié)點(兩種部署方式)
好的,我們來詳細說明如何在 Docker 環(huán)境中部署 n8n 工作流自動化工具,并確保支持 Code in Python (Native) 節(jié)點。
一、使用 Docker 部署 n8n
n8n 官方提供了 Docker 鏡像,部署非常方便。以下是兩種常見的部署方式:
方法 1: 直接運行容器
這是最簡單快捷的方式。
docker run -d \ --name n8n \ -p 5678:5678 \ -e N8N_BASIC_AUTH_USER=<你的用戶名> \ -e N8N_BASIC_AUTH_PASSWORD=<你的強密碼> \ -v ~/.n8n:/home/node/.n8n \ n8nio/n8n
參數(shù)解釋:
-p 5678:5678: 將容器內的 5678 端口(n8n 默認端口)映射到宿主機的 5678 端口。你可以根據(jù)需要修改宿主機端口(如-p 8080:5678)。-e N8N_BASIC_AUTH_USER和-e N8N_BASIC_AUTH_PASSWORD: 強烈建議設置,用于 Web UI 的基礎認證(用戶名/密碼)。請?zhí)鎿Q<你的用戶名>和<你的強密碼>。-v ~/.n8n:/home/node/.n8n: 將容器內存儲 n8n 配置、工作流、憑證等數(shù)據(jù)的目錄持久化掛載到宿主機的~/.n8n目錄。這樣即使容器重啟或刪除,數(shù)據(jù)也不會丟失。你可以根據(jù)需要修改宿主機路徑(如/path/to/n8n/data:/home/node/.n8n)。n8nio/n8n: 使用的官方鏡像名稱。
方法 2: 使用docker-compose(推薦)
使用 docker-compose.yml 文件管理更清晰,也方便后續(xù)擴展。
創(chuàng)建一個 docker-compose.yml 文件:
version: '3.8'
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_USER=<你的用戶名>
- N8N_BASIC_AUTH_PASSWORD=<你的強密碼>
# 可選:設置時區(qū) (例如 Asia/Shanghai)
- TZ=Asia/Shanghai
# 可選:禁用生產(chǎn)環(huán)境下的用戶管理(僅用于本地開發(fā)/測試)
# - N8N_DISABLE_PRODUCTION_MAIN_PROCESS=nginx
volumes:
- ./data:/home/node/.n8n- 同樣,請?zhí)鎿Q
<你的用戶名>和<你的強密碼>。 - 將文件保存在一個目錄(例如
n8n-docker),然后在該目錄下運行:
docker-compose up -d
訪問 n8n: 部署完成后,打開瀏覽器訪問 http://<你的宿主機IP或域名>:5678 (例如 http://localhost:5678),輸入設置的用戶名和密碼即可登錄 n8n Web UI。
二、支持Code in Python (Native)節(jié)點
Code in Python (Native) 節(jié)點允許你在 n8n 工作流中直接運行 Python 3 代碼。要使其正常工作,必須在運行 n8n 的容器內安裝所需的 Python 依賴。
步驟
進入 n8n 容器:
docker exec -it n8n /bin/bash
(如果使用 docker-compose 且服務名是 n8n,則用 docker-compose exec n8n /bin/bash)
安裝 Python 依賴: 容器內已經(jīng)預裝了 Python 3 (通常是 3.8 或更高版本,具體取決于 n8n 鏡像版本)。使用 pip 安裝你需要的包。例如,安裝常用的 requests 和 pandas:
pip install requests pandas
請根據(jù)你的工作流需求安裝必要的包。
驗證安裝: 你可以嘗試在容器內運行一個簡單的 Python 命令檢查包是否可用:
python -c "import requests; print(requests.__version__)"
退出容器:
exit
重要提示
- Python 版本: n8n 的
Code in Python (Native)節(jié)點需要 Python 3.8 或更高版本。官方 Docker 鏡像通常會包含兼容的版本。 - 容器重啟: 由于容器是無狀態(tài)的,通過
docker exec安裝的包在容器重啟后會丟失。有幾種解決方法:- (推薦) 構建自定義鏡像: 創(chuàng)建一個
Dockerfile基于n8nio/n8n,并在其中使用RUN pip install ...命令安裝你的依賴。然后使用這個自定義鏡像來運行容器或更新docker-compose.yml。 - 持久化 Python 環(huán)境 (高級): 可以將容器內的 Python 包安裝路徑(例如
/usr/local/lib/python3.8/site-packages)掛載到一個數(shù)據(jù)卷。但這需要確保宿主機路徑上的包架構與容器內 Python 環(huán)境兼容,操作較復雜且有風險,通常不推薦。 - 啟動腳本: 在
docker-compose.yml的entrypoint或command覆蓋中添加一個啟動腳本,該腳本在 n8n 啟動前檢查并安裝依賴。這需要編寫額外的腳本邏輯。
- (推薦) 構建自定義鏡像: 創(chuàng)建一個
- 依賴管理: 對于復雜的項目,建議在容器內使用
requirements.txt文件并通過pip install -r requirements.txt來管理依賴。
三、驗證 Python 節(jié)點可用性
- 在 n8n Web UI 中創(chuàng)建一個新的工作流。
- 添加一個
Code節(jié)點(在節(jié)點庫搜索 "code")。 - 選擇
Code in Python (Native)作為模式。 - 在代碼編輯框中輸入簡單的測試代碼,例如:
import requests print("Python is working!") print(f"Requests version: {requests.__version__}") return [{"output": "Success!"}] - 執(zhí)行該節(jié)點。如果配置正確,你應該能看到輸出日志打印信息并成功返回結果。
通過以上步驟,你應該能夠在 Docker 中成功部署 n8n 并配置好 Code in Python (Native) 節(jié)點的運行環(huán)境。
到此這篇關于Docker環(huán)境中部署n8n支持Python節(jié)點(兩種部署方式)的文章就介紹到這了,更多相關Docker部署n8n內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Dockerfile建立一個自定義的鏡像執(zhí)行自定義進程詳細過程
這篇文章主要介紹了Dockerfile建立一個自定義的鏡像執(zhí)行自定義進程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
本地Docker部署Navidrome音樂服務器與遠程訪問聽歌詳細教程(圖文詳解)
本文和大家分享一款目前在G站有11K+Star的開源跨平臺音樂服務器?Navidrome,如何在?Linux?環(huán)境本地使用?Docker?部署,并結合cpolar?內網(wǎng)穿透工具配置公網(wǎng)地址,實現(xiàn)隨時隨地遠程訪問本地存儲音樂的詳細流程,感興趣的朋友跟隨小編一起看看吧2024-08-08
Docker Compose健康檢查實現(xiàn)零停機部署
本文主要介紹了Docker Compose健康檢查實現(xiàn)零停機部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2026-04-04
使用phpstorm對docker中的腳本進行debug的方法
這篇文章主要介紹了使用phpstorm對docker中的腳本進行debug的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
Docker?ZooKeeper3.4.10集群安裝配置過程
這篇文章主要介紹了ZooKeeper3.4.10集群安裝配置-Docker,集群部署配置步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07

