Docker部署的Node-RED持续重启问题求助
Docker更新后Node-RED频繁重启无法启动问题
操作步骤
执行以下命令更新Docker环境后出现问题:
docker-compose up --force-recreate --build -ddocker image prune -f
环境信息
- 系统内核:
Linux DietPi 6.1.11-meson64 #23.02.2 SMP PREEMPT Sat Feb 18 00:07:55 UTC 2023 aarch64 GNU/Linux
- Docker版本:
Docker version 24.0.4, build 3713ee1 - Docker Compose镜像配置:
image: nodered/node-red:latest
问题现象
Node-RED每隔几秒自动重启,启动失败报错:
SyntaxError: Invalid or unexpected token at Object.compileFunction (node:vm:352:18) at wrapSafe (node:internal/modules/cjs/loader:1033:15) at Module._compile (node:internal/modules/cjs/loader:1069:27) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (/usr/src/node-red/node_modules/mime/index.js:4:27) at Module._compile (node:internal/modules/cjs/loader:1105:14) Failed to start server: /usr/src/node-red/node_modules/mime/types/standard.js:2
镜像详情
操作时间为2023年7月14日,使用的latest镜像信息:
REPOSITORY TAG IMAGE ID CREATED SIZE nodered/node-red latest ed58160c5a2e 11 months ago 485MB
完整启动日志
root@DietPi:~/docker/nodered# docker-compose up [+] Running 2/2 ⠿ Network nodered_node-red-net Created 0.2s ⠿ Container nodered Created 0.4s Attaching to nodered nodered | Failed to start server: nodered | /usr/src/node-red/node_modules/mime/types/standard.js:2 nodered | nodered | nodered | nodered | SyntaxError: Invalid or unexpected token nodered | at Object.compileFunction (node:vm:352:18) nodered | at wrapSafe (node:internal/module/cjs/loader:1033:15) nodered | at Module._compile (node:internal/modules/cjs/loader:1069:27) nodered | at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) nodered | at Module.load (node:internal/modules/cjs/loader:981:32) nodered | at Function.Module._load (node:internal/modules/cjs/loader:822:12) nodered | at Module.require (node:internal/modules/cjs/loader:1005:19) nodered | at require (node:internal/modules/cjs/helpers:102:18) nodered | at Object.<anonymous> (/usr/src/node-red/node_modules/mime/index.js:4:27) nodered | at Module._compile (node:internal/modules/cjs/loader:1105:14) nodered exited with code 0 root@DietPi:~/docker/nodered#
解决方法
检查镜像架构兼容性
当前系统为aarch64架构,先确认拉取的镜像是否匹配:docker inspect ed58160c5a2e | grep Architecture若输出不是
aarch64,清理错误镜像后重新拉取对应架构版本:docker rmi ed58160c5a2e docker pull nodered/node-red:latest --platform linux/arm64/v8 docker-compose up -d切换至指定版本镜像
放弃latest标签,使用明确兼容的版本(如3.0.2),修改docker-compose.yml的镜像配置:image: nodered/node-red:3.0.2重新部署:
docker-compose down docker-compose pull docker-compose up -d清理本地挂载数据卷(谨慎操作)
若挂载了本地目录保存Node-RED配置,可能是本地依赖文件损坏。先备份数据,再清理重新部署:# 备份本地数据 cp -r ~/docker/nodered/data ~/docker/nodered/data_backup # 停止容器并删除数据卷 docker-compose down -v # 重新启动服务 docker-compose up -d
内容的提问来源于stack exchange,提问作者Szjoin
相关产品推荐
相关产品推荐

