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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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。输出电压公式&#…