Docker部署Frappe Bench启动时Redis SocketIO错误求助
解决Docker部署Frappe Bench后Redis SocketIO启动失败问题
1. 检查Redis SocketIO服务状态
进入Docker容器内部,确认Redis SocketIO服务运行状态:
docker exec -it [你的frappe容器ID/名称] bash # 查看Redis进程 ps aux | grep redis # 测试Socket连接可用性 redis-cli -s /tmp/redis.socketio ping
若返回PONG说明服务正常,否则重启Redis SocketIO:
bench restart redis-socketio
2. 验证Docker端口映射
确认容器已正确映射Redis SocketIO默认端口(9000):
docker ps | grep [你的frappe容器名称]
若未看到0.0.0.0:9000->9000/tcp映射,停止容器后重新运行并添加端口映射:
docker stop [容器ID] docker run -d -p 9000:9000 [原有启动参数] frappe/bench:latest
3. 修复Socket文件权限
权限错误会导致连接失败,执行以下命令修正:
docker exec -it [容器ID] bash chown frappe:frappe /tmp/redis.socketio chmod 660 /tmp/redis.socketio
4. 重建Redis相关容器(多容器部署场景)
如果用docker-compose部署,重建Redis SocketIO服务:
docker-compose down redis-socketio docker-compose up -d redis-socketio
之后重新启动bench:
docker exec -it [bench容器ID] bench start
5. 切换为TCP连接替代Unix Socket
若Socket连接持续异常,修改common_site_config.json改用TCP连接:
docker exec -it [容器ID] nano sites/common_site_config.json
将redis_socketio配置替换为TCP地址:
"redis_socketio": "redis://redis-socketio:6379/1"
保存后重启bench:
bench restart
内容的提问来源于stack exchange,提问作者Rajan Okita
相关产品推荐
相关产品推荐

