docker小白自存-windows系統通過docker安裝n8n-nodes-puppeteer

n8n上直接在社區下載puppeteer節點,使用時會報錯說沒有chromium依賴。
找到了n8n-nodes-puppeteer的github試圖解決
根據他的docker安裝指南執行,運行容器時會報exec /docker-custom-entrypoint.sh: no such file or directory (明明文件都有

后面根據deepseek(謝謝d老師)改了一下dockerfile文件成功了
原因:

  • Windows換行符問題:Windows使用CRLF換行符,而Linux需要LF。這會導致腳本無法執行。
    解決方案:
  1. 把文件扔進vsode,CRLF換成LF,保存文件就ok(這個我沒試過,先試的第二種)(二編:試過了不行 還是要改dockerfile內容)
  2. 改dockerfile內容,添加dos2unix工具
FROM docker.n8n.io/n8nio/n8nUSER root# Install Chrome dependencies and Chrome
RUN apk add --no-cache \chromium \nss \glib \freetype \freetype-dev \harfbuzz \ca-certificates \ttf-freefont \udev \ttf-liberation \font-noto-emoji# Tell Puppeteer to use installed Chrome instead of downloading it
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser# Install n8n-nodes-puppeteer in a permanent location
RUN mkdir -p /opt/n8n-custom-nodes && \cd /opt/n8n-custom-nodes && \npm install n8n-nodes-puppeteer && \chown -R node:node /opt/n8n-custom-nodes# Copy our custom entrypoint
COPY docker-custom-entrypoint.sh /docker-custom-entrypoint.sh
RUN apk add --no-cache dos2unix && \  dos2unix /docker-custom-entrypoint.sh && \  chmod +x /docker-custom-entrypoint.sh && \chown node:node /docker-custom-entrypoint.sh && \apk del dos2unix  USER nodeENTRYPOINT ["/docker-custom-entrypoint.sh"]

后續根據官方指南執行構建鏡像:

docker build -t n8n-puppeteer -f docker/Dockerfile docker/

運行容器(我是在dockerdesktop上直接創建的沒有用這個命令;n8n_data是我在dockerdesktop上建的數據卷):

docker run -it \-p 5678:5678 \-v n8n_data:/home/node/.n8n \n8n-puppeteer

總之最后成功了 以上
在這里插入圖片描述

=============================================

【二編】后來另一臺電腦安裝的docker desktop版本是 4.11.1 (84025),只能命令行創建,但是使用n8n puppeteer時出現新的報錯:

Failed to launch/connect to browser: Failed to launch the browser process! Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted [44:44:0627/063339.306656:FATAL:content/browser/zygote_host/zygote_host_impl_linux.cc:211] Check failed: . : Operation not permitted (1) [0627/063339.344366:WARNING:third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc:95] sched_getscheduler: Function not implemented (38) [0627/063339.344661:WARNING:third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc:95] sched_getscheduler: Function not implemented (38) [0627/063339.345185:ERROR:third_party/crashpad/crashpad/util/file/file_io_posix.cc:145] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2) [0627/063339.345332:ERROR:third_party/crashpad/crashpad/util/file/file_io_posix.cc:145] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2) TROUBLESHOOTING: https://pptr.dev/troubleshooting

定位到問題是我的win10版本是17763的,低于 Docker Desktop 要求使用 WSL2 引擎的版本 18362.1040+,“Use the WSL 2 based engine (requires Win 10 build 18362.1040+)”這個未選中,未使用WSL2引擎。d老師表示,可能使用的是較舊的 Hyper-V 或 VirtualBox 作為后端。在這種情況下,容器實際上是在一個虛擬機中運行,而Puppeteer需要Linux內核級權限(如命名空間操作),但當前容器環境權限不足。

解決方法:添加容器特權,在docker run命令中添加–privileged參數,授予容器完全主機權限,解決Operation not permitted錯誤。

docker run -it --privileged \  -p 5678:5678 \-v n8n_data:/home/node/.n8n \-e N8N_CHROME_ARGS="--no-sandbox --disable-setuid-sandbox" \n8n-puppeteer

執行后已成功解決問題。

d老師還提供了另外兩種方法,沒試過,也先扔出來。
2. 添加特定Linux能力
如果–privileged權限過高,可嘗試精細控制:

docker run -it \--cap-add=SYS_ADMIN \  # 添加系統管理能力--cap-add=NET_ADMIN \  # 添加網絡管理能力-p 5678:5678 \-v n8n_data:/home/node/.n8n \-e N8N_CHROME_ARGS="--no-sandbox --disable-setuid-sandbox" \n8n-puppeteer
  1. 禁用安全配置文件
docker run -it \--security-opt seccomp=unconfined \  # 禁用seccomp--security-opt apparmor=unconfined \  # 禁用AppArmor-p 5678:5678 \-v n8n_data:/home/node/.n8n \-e N8N_CHROME_ARGS="--no-sandbox --disable-setuid-sandbox" \n8n-puppeteer
  1. 使用root用戶運行
docker run ... n8n-puppeteer -u root

(最后實在不行的話就升級windows版本
(垃圾公司電腦升級一直錯誤 人都麻了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86668.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86668.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86668.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

腳本shebang的作用與使用方法

#!(稱為 shebang 或 hashbang)是腳本文件開頭的前兩個字符,用于告訴操作系統應該使用哪個解釋器來執行該腳本。 核心作用: 指定解釋器: 明確告訴系統運行這個腳本時應該調用哪個程序(解釋器)來…

【大模型學習 | BERT 量化學習 (1)】

BERT 情感分析 一、 數據集加載與模型訓練 from transformers import BertTokenizer, BertForSequenceClassification, Trainer, TrainingArguments from datasets import load_dataset import torch import numpy as np from sklearn.metrics import accuracy_score mode_na…

用低通濾波優化串口或485 通信指示燈電路

常見的通信指示燈電路就是簡單的把LED 連到TXD 和RXD 上,一有動靜就閃一下。問題是,如果波特率很高,一次通信時間很短,相當于占空比很低,LED 閃爍的亮度就很弱,不容易觀察。比如MODBUS 通信,波特…

【純干貨】調整word目錄中的行距以及右對齊頁碼

1.問題展現 目錄生成會遇到一些奇葩現象 所以到了展現技術力的時候了【doge】 2.解決word目錄中的行距問題 選中目錄中的文字-》段落 此時你可能勾選了圖片中的一個以上,把他們都取消了, 由于一個目錄的標題對應一個樣式,第一個也可以取消 …

pandas 優雅處理值類型為list的列的csv讀寫問題

文章目錄 直接存儲join list 變成字符串存儲json.dumps序列化存儲以及json.loads反序列化讀取總結 之所以分析這個問題,是因為讀者在跟第三方數據供應商對接數據的時候,老是會遇到數據加載都會出錯的問題,其中一個原因就是list類型數據沒有正確儲存,于是筆者在這篇文章里面詳細…

一種解決 OpenWrt 安裝 docker 之后局域網的設備之間無法互相訪問通信的方法

文章目錄 一、問題背景二、解決方案(方法一)修改全局設置的 轉發( forward) 為 接受(ACCEPT)(方法二)設置 net.bridge.bridge-nf-call-iptables0 并將 docker 的容器網絡設置為host …

Leetcode百題斬-貪心

貪心也是一個很有意思的專題,能遇到很多神奇的思路。 但這個專題,leetcode也沒放Hard,果然是怕這種玄學專題上點難度大家罩不住。那就很快了,直接過 763. Partition Labels[Medium] 思路:將字母串分組,相…

基于多徑信道的分集接收技術性能優化與仿真分析

基于多徑信道的分集接收技術性能優化與仿真分析 一、多徑信道建模與仿真 1. 多徑信道建模(MATLAB實現) classdef MultipathChannel < handlepropertiesSampleRate = 1e6; % 采樣率 (Hz)MaxDoppler = 100; % 最大多普勒頻移 (Hz)DelayVector = [0

LeetCode 713.乘積小于K的子數組

給你一個整數數組 nums 和一個整數 k &#xff0c;請你返回子數組內所有元素的乘積嚴格小于 k 的連續子數組的數目。 示例 1&#xff1a; 輸入&#xff1a;nums [10,5,2,6], k 100 輸出&#xff1a;8 解釋&#xff1a;8 個乘積小于 100 的子數組分別為&#xff1a;[10]、[5…

打破網絡安全孤島:實現防御數據協作

作者&#xff1a;來自 Elastic Crossley McEwen, Oksana Abramovych 現代網絡戰場不再受組織邊界的限制。在各類防御網絡中&#xff0c;關鍵的結構化、非結構化和半結構化數據分布在不同的專業環境中&#xff0c;形成孤島 —— 從機密情報系統到作戰指揮平臺&#xff0c;再到戰…

給定一個沒有重復元素的數組,寫出生成這個數組的MaxTree的函數

題目&#xff1a; 給定一個沒有重復元素的數組arr&#xff0c;寫出生成這個數組的MaxTree的 函數&#xff0c;要求如果數組長度為N&#xff0c;則時間復雜度為O(N)、額外空間復雜度 為O(N)。 一個數組的MaxTree定義如下。 ● 數組必須沒有重復元素。 ● MaxTree是一棵二叉…

iOS 抓包實戰:時間戳偏差導致的數據同步異常排查記錄

“這條數據不是我填的”“我的更新被覆蓋了”“兩個設備顯示不一致”——這些是產品上線后最令人頭疼的反饋。 最近我們在一次用戶同步問題排查中&#xff0c;發現表面是“數據丟失”問題&#xff0c;實則是多端數據提交時間戳處理不一致&#xff0c;導致后臺認為老數據為新&a…

一款支持多日志器、多級別、多落地方式的同異步日志系統

文章目錄 簡介項目特點項目實現基礎功能模塊實現文件操作以及日期時間獲取日志等級日志信息描述 異步功能模塊實現緩沖區實現異步線程實現 核心功能模塊實現日志格式解析落地操作實現日志器實現 測試測試環境測試參數測試結果性能分析 附件 簡介 在現代軟件開發與系統運維領域…

加固筆記本在戶外勘探行業的應用:探索與科技的融合

在自然資源勘探、地質調查、石油天然氣開發、礦產資源測繪等戶外勘探行業中&#xff0c;作業環境常常復雜多變&#xff1a;風沙漫天的戈壁、雨雪交加的山區、濕熱潮濕的叢林&#xff0c;甚至是極寒與高溫并存的極端氣候條件。面對這些挑戰&#xff0c;普通的辦公設備早已無法勝…

MySQL 連接指定端口后,為什么實際仍是 3306?

文章目錄 MySQL 連接指定端口后&#xff0c;為什么實際仍是 3306&#xff1f;問題現象復現原因分析沒有指定 -h&#xff0c;默認走的是本地 Unix Socket多實例環境中未顯式指定目標地址 正確的連接方法方法一&#xff1a;添加 -h 127.0.0.1方法二&#xff1a;添加 --protocolTC…

【Android當用戶兩次打斷息屏操作后,屏幕將會在10分鐘內無法熄滅并持續點亮(關閉Android13新增的dim功能)】

UndimDetectorWakeLock持鎖導致屏幕不滅問題處理SOP 問題描述 在Android T版本中&#xff0c;系統新增了SCREEN_BRIGHT_WAKE_LOCK&#xff08;UndimDetectorWakeLock&#xff09;機制。當設備處于低亮度&#xff08;dim&#xff09;狀態時&#xff0c;用戶兩次打斷屏幕熄滅操…

Tailwind CSS自定義用法

文章目錄 前言? 一、集成 Tailwind CSS 到 React 項目1. 安裝依賴2. 配置 tailwind.config.js3. 創建全局樣式文件&#xff08;如 src/index.css&#xff09;tailwind base;tailwind components;tailwind utilities; 4. 在 main.tsx 或 main.jsx 中引入樣式 ? 二、自定義樣式…

linux面試常考

常用指令 常見題

Spring Boot 2.2.6調用DeepSeek API并通過SSE將流式響應推送給前端的完整實現

1. 添加依賴 (pom.xml) <dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SSE 支持 --><depe…

LM1117-ADJ 簡單介紹

LM1117-ADJ是一款可調輸出電壓的低壓差線性穩壓器&#xff08;LDO&#xff09;&#xff0c;具有以下關鍵特性和應用要點&#xff1a; 核心特性 可調輸出電壓 通過外部分壓電阻&#xff08;R1和R2&#xff09;調節輸出電壓&#xff0c;范圍為1.25V至13.8V。輸出電壓公式&#…