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

    改为

    image: open-im-server

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

你可能感兴趣的:(后端docker)