**这是本文档旧的修订版!**
Node-Red
安装模块(高级版):
#!/bin/sh
# 定义需要安装的Node-RED模块列表
MODULES="node-red-contrib-calc
node-red-contrib-simpletime
node-red-dashboard
node-red-node-email
node-red-contrib-gotify-notification
node-red-node-ui-table"
# 开启命令执行调试输出(可删除,用于查看执行过程)
set -x
# 核心修改:查找包含"node-red"关键字的运行中容器,仅输出容器名
# --filter "name=node-red":过滤容器名包含node-red的容器
# --format "{{.Names}}":仅格式化输出容器名称,不输出其他冗余信息
NODE_RED_CONTAINERS=$(docker ps --filter "name=node-red" --format "{{.Names}}")
# 健壮性判断:如果未找到符合条件的容器,报错并退出脚本
if [ -z "$NODE_RED_CONTAINERS" ]; then
echo "错误:未找到包含 'node-red' 关键字的运行中容器!"
exit 1
fi
# 循环处理每个找到的Node-RED容器(支持多个符合条件的容器)
for CONTAINER in $NODE_RED_CONTAINERS
do
echo "====================================="
echo "正在为容器 $CONTAINER 安装Node-RED模块..."
echo "====================================="
# 执行模块安装(替换原硬编码容器名为动态获取的容器名)
docker exec -i "$CONTAINER" npm install --no-audit --no-update-notifier --no-fund --save --prefix=/data --omit=dev $MODULES
# 安装完成后重启当前容器
echo "正在重启容器 $CONTAINER..."
docker restart "$CONTAINER"
done
echo "所有符合条件的Node-RED容器处理完成!"
安装模块(基础版):
#!/bin/sh MODULES="node-red-contrib-calc node-red-contrib-simpletime node-red-dashboard node-red-node-email node-red-contrib-gotify-notification node-red-node-ui-table" set -x for MODULE in $MODULES do docker exec -i teslamatecn-node-red-1 npm install --no-audit --no-update-notifier --no-fund --save --prefix=/data --omit=dev $MODULE done docker restart teslamatecn-node-red-1