Windows下使用Docker部署Open-IM-Server

1. 准备工作 1.1 安装git(略)
1.2 安装Docker(略)
1.3 git换行符配置
Windows下使用CRLF作为换行符. Linux和Mac使用LF作为换行符.
我们统一使用LF作为换行符,否则Linux上运行sh文件和解析配置文件会出现错误.
在命令行窗口执行如下命令:

git config --global core.autocrlf input git config --global core.safecrlf true

  1. 提交时转换为LF,检出时不转换
  2. 拒绝提交包含混合换行符的文件
如果你想转换某个目录下以及子文件夹下的文件换行符为LF,在git bash中执行:
find . -type f|xargs dos2unix

2. 下载代码 2.1 如果可以正常访问github,执行如下命令
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive

--recursive表示把所有的子模块都下载下来.
2.2 如果无法正常访问github:
  1. 只下载根工程,子模块不下载
    git clone https://hub.fastgit.xyz/OpenIMSDK/Open-IM-Server.git

  2. 下载子模块cmd/Open-IM-SDK-Core.
    执行cd Open-IM-Server 进入项目根目录,修改.gitmodules文件,把github.com改成hub.fastgit.xyz.
    最终文件内容为:
    [submodule "cmd/Open-IM-SDK-Core"] path = cmd/Open-IM-SDK-Core url = https://hub.fastgit.xyz/OpenIMSDK/Open-IM-SDK-Core.git

    或者,你也可以执行以下代码替换URL:
    git submodule set-url cmd/Open-IM-SDK-Core https://hub.fastgit.xyz/OpenIMSDK/Open-IM-SDK-Core.git

    然后执行git submodule update --init下载子模块cmd/Open-IM-SDK-Core.
  3. 下载子模块cmd/Open-IM-SDK-Core的子模块internal/sdk_advanced_function
    执行cd cmd/Open-IM-SDK-Core进入子模块的目录,修改.gitmodules文件,把github.com改成hub.fastgit.xyz.
    最终文件内容为:
    [submodule "internal/sdk_advanced_function"] path = internal/sdk_advanced_function url = https://hub.fastgit.xyz/OpenIMSDK/sdk_advanced_function.git

    或者,你也可以执行以下代码替换URL:
    git submodule set-url internal/sdk_advanced_function https://hub.fastgit.xyz/OpenIMSDK/sdk_advanced_function.git

    然后执行git submodule update --init下载子模块internal/sdk_advanced_function.
3. 使用Docker部署 由于官方的镜像太旧,我们自己build一个.
进入工程根目录docker build -t open-im-server -f deploy.Dockerfile . (注意结尾有个点.)
注意:Open-IM-Server\config\config.yaml中有大量的配置,包含一些服务的IP和端口,第三方服务(比如在线存储,推送,短信),如果你要用自己的需要在这里修改.
打开docker-compose.yaml文件:
  • KAFKA_ADVERTISED_LISTENERS: INSIDE://127.0.0.1:9092,OUTSIDE://103.116.45.174:9092OUTSIDE的地址为你的宿主IP,我这里使用本机的内网地址192.168.2.2,如果你需要让外网能访问到你,则需要改成外网IP
  • 修改minio映射地址. 把
    /mnt/data:/data /mnt/config:/root/.minio

    改为
    ./components/minio/data:/data ./components/minio/config:/root/.minio

  • 修改open-im-server的镜像为刚才我们自己创建的,把
    image: openim/open_im_server:v2.2.0

    【Windows下使用Docker部署Open-IM-Server】改为
    image: open-im-server

    最后,在控制台中执行 docker-compose up -d.注意当前目录是工程根目录.

    推荐阅读