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

使用docker-compose为Node-RED安装openapi-red节点后不显示求助

问题根因

你当前的配置存在两处核心错误,导致安装的openapi-red节点没有被加载:

  • 你写的Dockerfile为多阶段构建,第一阶段基于官方Node-RED镜像安装了swagger-client和openapi-red,但第二阶段直接切换到了python镜像,第一阶段的Node-RED构建产物完全被丢弃,最终生成的镜像仅包含Flask应用,没有带额外节点的Node-RED内容。
  • docker-compose.yml中的node-red服务直接使用了官方纯净镜像nodered/node-red:latest,完全没有调用你本地构建的镜像,启动的就是没有任何自定义节点的默认Node-RED。

解决步骤

步骤1:拆分镜像构建文件

你当前把Node-RED和Flask两个服务的构建逻辑写在了同一个Dockerfile中,需要拆分:

  1. 新建Dockerfile.nodered文件,仅保留Node-RED相关构建逻辑:
FROM nodered/node-red
RUN npm i swagger-client
RUN npm install openapi-red
  1. 原Dockerfile仅保留Flask相关构建逻辑即可,用于构建Flask应用镜像。

步骤2:修改docker-compose.yml配置

将node-red服务的镜像源从官方镜像改为本地构建的自定义镜像,修改后配置如下:

nodered:
  build:
    context: .
    dockerfile: Dockerfile.nodered
  environment:
      - TZ=Europe/Amsterdam
  ports: 
      - "1880:1880"
  volumes:
      - node-red-data:/data
  links:
      - mongo
  networks:
      app_subnet:
          ipv4_address: 172.16.1.7 

步骤3:重新构建启动服务

执行以下命令重建整个服务栈:

docker-compose down && docker-compose up --build -d

异常校验(如果操作后仍不显示可排查)

  • 进入运行中的Node-RED容器,执行npm list openapi-red确认节点包已正确安装在Node-RED可识别的路径下
  • 执行docker logs <node-red容器名>查看启动日志,确认没有节点加载报错信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:15:00