内网部署
📌 内网部署指南
本指南将指导您在一台纯内网机器上部署 OpenIMSDK 相关服务。
版本策略(重要)
- 默认建议:在联网机器上拉取仓库后,切换到 latest tag 再做离线打包。
- 如需固定版本(例如
v3.8.3-patch.12):将git checkout "$LATEST_TAG"替换为git checkout v3.8.3-patch.12。 - 强烈建议:OpenIMServer、ChatServer、openim-docker 使用同一批次发布版本,避免跨版本组合。
Docker部署
使用一台连接到互联网的机器,克隆仓库并切换到 latest tag:
git clone https://github.com/openimsdk/openim-docker && cd openim-docker
git fetch --tags
LATEST_TAG=$(git tag --sort=-v:refname | head -n 1)
git checkout "$LATEST_TAG"
echo "using openim-docker tag: $LATEST_TAG"运行
docker compose up -d拉取镜像并生成本地镜像清单。导出当前 compose 实际使用镜像(避免手工维护版本号):
docker compose config --images | sort -u > images.txt批量保存镜像:
while read -r image; do
docker save -o "$(echo "$image" | tr '/:' '_').tar" "$image"
done < images.txt通过内网或物理介质将镜像文件和openim-docker 仓库文件拷贝到部署机器。
在部署机器导入镜像:
docker load -i image-name.tar在仓库目录下运行:
docker compose up -d需要启动监控组件则运行:
docker compose --profile m up -d
源码部署
使用一台连接到互联网的机器,克隆 OpenIMServer 并切换到 latest tag:
git clone https://github.com/openimsdk/open-im-server && cd open-im-server
git fetch --tags
LATEST_TAG=$(git tag --sort=-v:refname | head -n 1)
git checkout "$LATEST_TAG"
echo "using open-im-server tag: $LATEST_TAG"克隆 ChatServer 并切换到 latest tag:
git clone https://github.com/openimsdk/chat && cd chat
git fetch --tags
LATEST_TAG=$(git tag --sort=-v:refname | head -n 1)
git checkout "$LATEST_TAG"
echo "using chat tag: $LATEST_TAG"参考 docker部署 步骤保存依赖组件镜像(源码部署场景不需要服务端业务镜像)。
通过内网或者物理介质将镜像文件、OpenIMServer 仓库文件、ChatServer 仓库文件拷贝到部署机器上。
导入镜像到
docker中,命令为:docker load -i image-name.tar例如
mongo镜像导入命令为:docker load -i mongo.tar在 OpenIMServer 目录下依次运行:
docker compose up -d # 如需启用监控组件则为 docker compose --profile m up -d
mage
mage start在 ChatServer 目录下运行:
mage
mage start