银河麒麟v10部署rocket.chat失败的四大可靠方案:一、docker-compose标准部署;二、离线镜像包导入部署;三、宝塔面板图形化部署;四、nginx websocket增强配置,分别适配网络通畅、物理隔离、低技术门槛及移动端连接异常等场景。

如果您在银河麒麟操作系统上部署私有化通讯平台,但Rocket.Chat服务无法启动或Web界面不可访问,则可能是由于Docker环境未就绪、编排配置不兼容或Nginx反向代理未正确启用WebSocket支持。以下是适用于银河麒麟V10(含SP1/SP3/Tercel/Halberd等版本)的多种可靠部署方法:
一、基于Docker-Compose的标准部署法
该方法利用官方Docker镜像与Compose编排文件统一管理服务组件,适合具备基础容器运维能力且网络通畅的内网环境,依赖已正确安装并运行的Docker及docker-compose。
1、创建专用工作目录:
sudo mkdir -p /opt/rocketchat && cd /opt/rocketchat
2、下载官方推荐的Compose编排文件:
sudo curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml -o docker-compose.yml
3、编辑docker-compose.yml,将mongo服务的image字段替换为适配麒麟内核的MongoDB 4.4+镜像:
image: mongo:4.4.25-xenial
4、修改rocketchat服务的environment段,显式指定NODE_VERSION=14.18.3以确保兼容性:
NODE_VERSION: "14.18.3"
5、执行后台启动命令:
sudo docker-compose up -d
6、检查服务状态:
sudo docker-compose ps | grep "Up" 应显示两个服务均处于Up状态,且端口3000映射正常
二、离线镜像包导入部署法
该方法规避网络拉取环节,通过预下载并校验镜像包实现物理隔离环境下的快速部署,适用于涉密专网、科研内网等无外联条件场景,要求提前获取完整镜像tar包及对应sha256校验值。
1、确认系统架构与Docker版本:
uname -m 输出必须为aarch64或x86_64;
sudo docker --version 输出版本不低于24.0.7
2、从可信渠道获取三件套离线包:
rocket.chat-v4.5.1.tar、mongo-4.4.25-xenial.tar、node-14.18.3-slim.tar
3、依次导入镜像:
sudo docker load -i rocket.chat-v4.5.1.tar
sudo docker load -i mongo-4.4.25-xenial.tar
sudo docker load -i node-14.18.3-slim.tar
4、手动编写docker-run.sh脚本,按顺序启动MongoDB容器(绑定/var/lib/mongo路径)与Rocket.Chat容器(挂载--link mongodb:mongodb)
5、验证容器间网络连通性:
sudo docker exec -it rocketchat-container ping -c 3 mongodb
三、宝塔面板辅助部署法
该方法面向不熟悉命令行操作的系统管理员,依托银河麒麟软件商店中已上架的宝塔Linux面板(v8.0.5+),通过图形化界面完成Docker管理、反向代理与SSL配置全流程,降低私有化部署门槛。
1、打开麒麟软件商店,搜索“宝塔”,点击【安装】并等待服务初始化完成
2、浏览器访问http://localhost:8888,使用首次生成的账号密码登录面板
3、进入【软件商店】→【运行环境】→【Docker管理器】,点击【一键安装】并启用自动启动
4、在【Docker管理器】→【容器管理】中,点击【创建容器】:
镜像名称填写rocketchat/rocket.chat:4.5.1;
端口映射设置为3000:3000;
环境变量添加MONGO_URL=mongodb://mongodb:27017/rocketchat
5、创建MongoDB容器作为依赖服务,镜像名填写mongo:4.4.25-xenial,端口不对外暴露,仅供内部链接
6、返回【网站】→【添加站点】,输入域名(如chat.internal),勾选【反向代理】并指向127.0.0.1:3000
四、Nginx WebSocket增强配置法
该方法专用于解决Rocket.Chat移动端App连接失败、提示“Websocket已于此伺服器上禁用”的典型问题,通过在麒麟OS默认Nginx配置中注入WebSocket握手支持指令,确保长连接稳定建立。
1、确认Nginx已安装并运行:
sudo nginx -v 应返回1.18.0或更高版本
2、编辑全局Nginx主配置文件:
sudo nano /etc/nginx/nginx.conf
3、在http块顶部插入以下map指令:
map $http_upgrade $connection_upgrade { default upgrade; '' close; }
4、编辑站点配置文件(如/etc/nginx/conf.d/rocketchat.conf),在location /块内追加:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 300;
5、重载Nginx配置:
sudo nginx -t && sudo systemctl reload nginx
6、验证WebSocket握手响应头:
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" http://localhost:3000/websocket | head -10 应包含HTTP/1.1 101 Switching Protocols











