CooCare服务器部署 - housekeeper-software/coocare GitHub Wiki
简介
现在全部改成docker-compose部署方式,比较简单。
以前是将所有的程序放在一个镜像里,这个管理和维护比较复杂。现在将三个程序分为三个镜像:
registry.cn-shanghai.aliyuncs.com/smartlife-docker/messageroute:latest: usercenter之间的消息转发
registry.cn-shanghai.aliyuncs.com/smartlife-docker/servicecenter:latest:工程师服务器
registry.cn-shanghai.aliyuncs.com/smartlife-docker/usercenter:latest:用户登录服务器
一般,我们会启动2-3个usercenter容器,servicecenter只有一个,messageroute只有一个
具体的架构方面的问题,可以看code table下的架构图
新服务器初始化
为可靠起见,新服务器系统必须为Debian 10.9。
需要将证书复制到 cert 目录,名字是 coocare.pem(免密)
初始化过程包含安装docker和docker-compose,以及haproxy和将配置文件复制到指定的位置
#!/bin/bash
function docker_install(){
echo "check docker exist......"
docker -v
if [ $? -eq 0 ]; then
echo "docker installed already"
else
echo "prepare install docker..."
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
echo "docker install done"
fi
}
apt-get update
apt-get -y install apt-utils gnupg ca-certificates procps net-tools wget curl vim unzip tcpdump
echo "fs.file-max=102400" >> /etc/sysctl.conf
echo "net.core.somaxconn = 10240" >> /etc/sysctl.conf
echo "root soft nofile 204800" >> /etc/security/limits.conf
echo "root hard nofile 204800" >> /etc/security/limits.conf
echo "evan soft nofile 204800" >> /etc/security/limits.conf
echo "evan hard nofile 204800" >> /etc/security/limits.conf
sysctl -p
apt-get -y install haproxy
mkdir -p /etc/docker
cp daemon.json /etc/docker/daemon.json
echo "prepare install docker"
docker_install
echo "prepare install docker-compose"
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
cp ./conf/haproxy.cfg /etc/haproxy/haproxy.cfg
#copy coocare cert
mkdir -p /etc/cert
cp cert/coocare.pem /etc/cert/coocare.pem
mkdir -p /usr/local/coocare/messageroute/etc
mkdir -p /usr/local/coocare/servicecenter/etc
mkdir -p /usr/local/coocare/usercenter/etc
cp ./conf/messageroute.json /usr/local/coocare/messageroute/etc/conf.json
cp ./conf/servicecenter.json /usr/local/coocare/servicecenter/etc/conf.json
cp ./conf/usercenter.json /usr/local/coocare/usercenter/etc/conf.json
systemctl restart haproxy
修改配置
在docker-compose.yml所在目录下,执行如下命令:
touch .env
然后在.env文件写入:
REDIS=redis的配置
MYSQL=mysql的配置
PUSHURL=推送url
STATEURL=工程师状态url
构建
执行deploy.sh 即可完成
验证配置是否正确:
容器启动之后,在如下的位置:
/usr/local/coocare/sevicecenter/etc/
/usr/local/coocare/usercenter/etc
以上目录下有以serverid开头的 json文件,就是容器当前使用的配置,检查配置是否正确
usercenter扩展
如果部署在单独的服务器上,只要从上面复制一个过去就可以了,不同的服务器可以使用相同的端口。
在docker-compose.yml增加usercenter,需要修改的地方:
usercenter-bjucc: 这个要改
- /usr/local/coocare/usercenter/c/log:/app/log,将其中的c换成别的,确保日志不会输出到其他容器的文件里
- "15888:13188" #tcp listen port 前面的换个端口,后面的不要改,所有容器使用同样的内部端口
- "15889:13189" #websocket listen port 前面的换一个端口。。。。
- COOCARE_SERVER_ID=bjucc: serverid要改,确保唯一性,redis的里key
ipv4_address: 172.18.0.16,换一个ip,这个是虚拟网桥上的ip,换其他的ip
修改haproxy.cfg
listen usercenter-websocket-10889
增加 server websrv2 127.0.0.1:15889 check
listen usercenter-tcp-10888
增加 server s2 127.0.0.1:15888 weight 1 maxconn 200000 check send-proxy
#重启 haproxy
systemctl restart haproxy