You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无网络Docker容器离线安装node-red-contrib-influxdb遇EAI_AGAIN错误的解决方法

Node-RED Docker容器离线安装node-red-contrib-influxdb失败解决方法

问题描述

我需要在无网络的Node-RED Docker容器中安装node-red-contrib-influxdb包。已在联网Windows电脑上安装Node.js,下载该包及npm-pack-all工具,在包安装目录运行npm-pack-all生成tgz文件后复制到容器执行npm install,却出现如下错误:

npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/influx failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

npm ERR! A complete log of this run can be found in:
npm ERR!     /usr/src/node-red/.npm/_logs/2023-01-31T14_33_13_404Z-debug.log

日志关键内容:

15 silly resolveWithNewModule node-red-contrib-influxdb@0.6.1 checking installable status
16 silly fetchPackageMetaData error for influx@5.6.3 request to https://registry.npmjs.org/influx failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
...
29 error request to https://registry.npmjs.org/influx failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

错误本质:仅打包node-red-contrib-influxdb本身时,其依赖(如influx包)未被包含,离线安装时npm仍会尝试联网拉取依赖,导致网络请求失败。


解决步骤

1. 在联网机器上完整下载所有依赖

在Windows联网电脑上创建空目录,执行命令下载目标包及所有嵌套依赖:

npm install node-red-contrib-influxdb --no-save

执行后,当前目录的node_modules文件夹会包含所有所需依赖。

2. 打包包含全部依赖的完整包

先全局安装npm-pack-all工具(未安装时执行):

npm install -g npm-pack-all

在包含node_modules和package-lock.json的目录下,运行打包命令:

npm-pack-all

生成的tgz包会包含目标包及其所有依赖,避免离线安装时的联网请求。

3. 离线容器内安装包

将生成的完整tgz包复制到Node-RED容器的目标目录(如/data),执行离线安装命令:

npm install ./node-red-contrib-influxdb-xxx.tgz --no-audit --no-fund --offline
  • --offline:强制npm使用本地资源,禁止联网请求
  • --no-audit/--no-fund:跳过不必要的联网检查,提升安装效率

4. 验证安装结果

重启Node-RED容器后,在编辑器节点面板中查看InfluxDB相关节点,确认安装成功。


备选高效方案:构建自定义镜像

若需多次部署,可在联网机器上提前构建包含目标包的自定义Node-RED镜像:

  1. 创建Dockerfile:
FROM nodered/node-red:latest
WORKDIR /usr/src/node-red
RUN npm install node-red-contrib-influxdb
  1. 构建镜像:
docker build -t my-node-red-influx .
  1. 导出镜像为tar文件:
docker save -o my-node-red-influx.tar my-node-red-influx
  1. 在无网络机器上加载镜像并运行:
docker load -i my-node-red-influx.tar
docker run -d -p 1880:1880 --name my-node-red my-node-red-influx

内容的提问来源于stack exchange,提问作者Nyxeria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:55:16