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: 將容器內(nèi)的 5678 端口(n8n 默認端口)映射到宿主機的 5678 端口。你可以根據(jù)需要修改宿主機端口(如-p 8080:5678)。-e N8N_BASIC_AUTH_USER和-e N8N_BASIC_AUTH_PASSWORD: 強烈建議設(shè)置,用于 Web UI 的基礎(chǔ)認證(用戶名/密碼)。請?zhí)鎿Q<你的用戶名>和<你的強密碼>。-v ~/.n8n:/home/node/.n8n: 將容器內(nèi)存儲 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=<你的強密碼>
# 可選:設(shè)置時區(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),輸入設(shè)置的用戶名和密碼即可登錄 n8n Web UI。
二、支持Code in Python (Native)節(jié)點
Code in Python (Native) 節(jié)點允許你在 n8n 工作流中直接運行 Python 3 代碼。要使其正常工作,必須在運行 n8n 的容器內(nèi)安裝所需的 Python 依賴。
步驟
進入 n8n 容器:
docker exec -it n8n /bin/bash
(如果使用 docker-compose 且服務(wù)名是 n8n,則用 docker-compose exec n8n /bin/bash)
安裝 Python 依賴: 容器內(nèi)已經(jīng)預(yù)裝了 Python 3 (通常是 3.8 或更高版本,具體取決于 n8n 鏡像版本)。使用 pip 安裝你需要的包。例如,安裝常用的 requests 和 pandas:
pip install requests pandas
請根據(jù)你的工作流需求安裝必要的包。
驗證安裝: 你可以嘗試在容器內(nèi)運行一個簡單的 Python 命令檢查包是否可用:
python -c "import requests; print(requests.__version__)"
退出容器:
exit
重要提示
- Python 版本: n8n 的
Code in Python (Native)節(jié)點需要 Python 3.8 或更高版本。官方 Docker 鏡像通常會包含兼容的版本。 - 容器重啟: 由于容器是無狀態(tài)的,通過
docker exec安裝的包在容器重啟后會丟失。有幾種解決方法:- (推薦) 構(gòu)建自定義鏡像: 創(chuàng)建一個
Dockerfile基于n8nio/n8n,并在其中使用RUN pip install ...命令安裝你的依賴。然后使用這個自定義鏡像來運行容器或更新docker-compose.yml。 - 持久化 Python 環(huán)境 (高級): 可以將容器內(nèi)的 Python 包安裝路徑(例如
/usr/local/lib/python3.8/site-packages)掛載到一個數(shù)據(jù)卷。但這需要確保宿主機路徑上的包架構(gòu)與容器內(nèi) Python 環(huán)境兼容,操作較復(fù)雜且有風(fēng)險,通常不推薦。 - 啟動腳本: 在
docker-compose.yml的entrypoint或command覆蓋中添加一個啟動腳本,該腳本在 n8n 啟動前檢查并安裝依賴。這需要編寫額外的腳本邏輯。
- (推薦) 構(gòu)建自定義鏡像: 創(chuàng)建一個
- 依賴管理: 對于復(fù)雜的項目,建議在容器內(nèi)使用
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é)點。如果配置正確,你應(yīng)該能看到輸出日志打印信息并成功返回結(jié)果。
通過以上步驟,你應(yīng)該能夠在 Docker 中成功部署 n8n 并配置好 Code in Python (Native) 節(jié)點的運行環(huán)境。
到此這篇關(guān)于Docker環(huán)境中部署n8n支持Python節(jié)點(兩種部署方式)的文章就介紹到這了,更多相關(guān)Docker部署n8n內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux如何使用Docker部署DashDot訪問本地服務(wù)器面板
DashDot是一款簡單、實用的開源現(xiàn)代服務(wù)器儀表盤,主要應(yīng)用于小型?VPS?和私人的服務(wù)器(比如說NAS),它是一個界面非常漂亮的監(jiān)控服務(wù)器面板,這篇文章給大家介紹Linux使用Docker部署DashDot訪問本地服務(wù)器面板的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2024-04-04
Docker容器中數(shù)據(jù)卷volumes的使用
volume(卷)用來存儲docker持久化的數(shù)據(jù),其實就是一個主機上的一個目錄,由docker統(tǒng)一管理,下面這篇文章主要給大家介紹了關(guān)于Docker容器中數(shù)據(jù)卷volumes使用的相關(guān)資料,需要的朋友可以參考下2022-04-04
使用Docker部署Spring Boot的實現(xiàn)方法
這篇文章主要介紹了使用Docker部署Spring Boot的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
如何使用docker+frp進行內(nèi)網(wǎng)穿透
這篇文章主要介紹了使用docker+frp進行內(nèi)網(wǎng)穿透,在公網(wǎng)上的ubuntu系統(tǒng)需要配置相關(guān)操作,本文給大家介紹的非常詳細,需要的朋友可以參考下2024-04-04
Docker復(fù)制現(xiàn)有容器的實現(xiàn)方法
在使用Docker進行應(yīng)用開發(fā)和部署時,我們經(jīng)常需要基于現(xiàn)有的容器創(chuàng)建相似的環(huán)境,本文主要介紹了Docker復(fù)制現(xiàn)有容器的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2024-03-03
keepalived+nginx+httpd實現(xiàn)的雙機熱備+負載均衡
本文主要介紹了keepalived + nginx + httpd 實現(xiàn)的雙機熱備+負載均衡,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07

