第75节 OpenIM 离线安装设计


❤️💕💕记录sealosopen in new window开源项目的学习过程。k8s,docker和云原生的学习open in new window。Myblog:http://nsddd.topopen in new window


[TOC]

离线安装

测试环境

验证离线安装的环境是否正确:

ubuntu@VM-0-14-ubuntu:~/workspaces$ docker version
Client: Docker Engine - Community
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:47:57 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:45:46 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
ubuntu@VM-0-14-ubuntu:~/workspaces$ docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

安装包准备

镜像下载:

wget <http://59.36.173.89:9090/api/v1/buckets/app/objects/download?prefix=ZG9ja2Vy56a757q/5a6J6KOFLnJhcg==>

安装的逻辑: 1. 可以使用 docker 安装 2. 使用 docker-compopse

docker-compose

  1. 先把im的docker-compose配置注释掉,用docker安装组件。
  2. 再源码编译im server,启动im

环境准备

mysql

在线的环境准备

docker run -p 3306:3306 --name mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7

安装MongoDB

docker run -p 27017:27017 --name mongo -v /my/own/datadir:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=password \\-d mongo:4.0

安装 redis

docker run -p 6379:6379 --name redis -v /my/own/datadir:/data -e REDIS_PASSWORD=password -d redis:5

安装Zookeeper:

docker run  -p 2181:2181 --name zookeeper -d wombat/zookeeper

安装Kafka:

docker run -p 9092:9092 --name kafka --link zookeeper -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://:9092 -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_LISTENERS=PLAINTEXT://:9092 -d wurstmeister/kafka

安装Etcd:

docker run -p 2379:2379 -p 2380:2380 --name etcd -d quay.io/coreos/etcd

安装MinIO:

docker run -p 9000:9000 --name minio -v /mnt/data:/data -e "MINIO_ROOT_USER=${USER}" -e "MINIO_ROOT_PASSWORD=${PASSWORD}" -d minio/minio server /data

离线安装中间件

  1. scp images.tar.gz到服务器, 并且解压文件
 tar -zxvf ./images.tar.gz
  1. 加载每个镜像到docker里面
 etcd.tar  grafana.tar  kafka.tar  minio.tar  mongo.tar  mysql.tar  node-exporter.tar  promethues.tar  redis.tar  zookeeper.tar

docker 本地镜像导入:

 docker load -i ./etcd.tar;
 docker load -i ./grafana.tar;
 docker load -i ./kafka.tar;
 docker load -i ./minio.tar;
 docker load -i ./mongo.tar;
 docker load -i ./mysql.tar;
 docker load -i ./node-exporter.tar;
 docker load -i ./promethues.tar;
 docker load -i ./redis.tar;
 docker load -i ./zookeeper.tar;
# ---
# OR -
for img in etcd.tar grafana.tar kafka.tar minio.tar mongo.tar mysql.tar node-exporter.tar promethues.tar redis.tar zookeeper.tar; 
do
    docker load -i ./$img
done
  1. 验证导入
for image in etcd grafana kafka minio mongo mysql node-exporter prometheus redis zookeeper; do
    docker images | grep $image > /dev/null
    if [ $? -ne 0 ]; then
        echo "$image 镜像导入失败!"
    else
        echo "$image 镜像导入成功!"
    fi
done

编译

https://github.com/OpenIMSDK/Open-IM-Server-Enterprise.git

中间件数据库启动

  1. 进入 Open-IM-Server-Enterprise 目录下把 docker-compose.yaml 替换成该文档目录下的 docker-compose.yaml

    git clone -b v2.3.0release <https://github.com/OpenIMSDK/Open-IM-Server-Enterprise>
    
  2. 启动中间件数据库

 docker-compose up -d;

启动IM本体

  1. 启动
 ./start_all.sh
  1. 检查是否成功
 ./check_all.sh

启动其他组件

  1. 启动其他组件如加密,open-im-enterprise,按之前文档来启停。

音视频二进制

demo 安装下载

Edit on github

直接下载appopen in new window

https://www.pgyer.com/app/qrcode/OpenIM

可选择替换服务器地址为自己搭建的服务器地址,默认地址为官方服务器地址

END 链接