Docker部署的Node-RED运行Python脚本提示文件不存在的问题
Docker环境下Node-RED找不到Python脚本的问题排查与解决
核心问题很明确:Docker容器有独立的文件系统,你在宿主机用的/home/pi/docker/nodered/data/python/bins.py路径,在Node-RED容器内部根本不存在——这就是为什么宿主机能正常运行,容器里却提示找不到文件。
以下是具体解决步骤:
确认容器挂载路径
启动Node-RED容器时,你肯定把宿主机的/home/pi/docker/nodered/data目录挂载到了容器内的某个路径(官方镜像默认是/data)。可以用docker ps命令查看容器的挂载信息,找到宿主机目录对应的容器内部路径。调整Exec节点的命令路径
比如容器内挂载的路径是/data,那脚本在容器里的实际路径就是/data/python/bins.py,所以Exec节点里的命令要改成:python /data/python/bins.py记住:容器里只能用容器内部的路径,不能直接用宿主机的绝对路径。
验证容器内的可访问性
可以直接进入Node-RED容器的命令行测试:docker exec -it <你的Node-RED容器名或ID> bash # 进入容器后执行命令 python /data/python/bins.py如果能正常输出内容,说明路径没问题,回到Node-RED里调整Exec节点即可。
检查文件权限
确保宿主机上的bins.py文件权限允许容器内的用户访问(Node-RED容器通常用node用户运行)。可以在宿主机执行:chmod 644 /home/pi/docker/nodered/data/python/bins.py chown -R pi:pi /home/pi/docker/nodered/data/python/或者启动容器时指定用户参数,让容器内用户和宿主机用户一致,避免权限冲突。
内容的提问来源于stack exchange,提问作者Digital Essence
相关产品推荐
相关产品推荐

