由于 Master 使用 Docker 布署,更新版本时十分不方便,所以有了这个实践,下面分步为什么大家分享布署过程。这里需要有少少的 Linux 基础知识,要会用 vi 等工具。
sudo apt-get install git-core
选择安装 4.6.2 稳定版,选择这个版本是有原因的,因为 6.9.1 对 zeromq 支持不太好,调用时报错,建议使用这个版本
以下操作是创建一个目录,把 nvm 代码 check out 下来,执行 ./install.sh
进行安装
mkdir nodejs
cd nodejs/
git clone https://github.com/creationix/nvm.git
cd nvm/
./install.sh
安装完成后注意提示,把环境变量添加进.bashrc
,如果使用了 zsh 的就添加到.zshrc
=> Appending source string to /home/docker/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
就是添加这一行,vi 你的.bashrc 或.zshrc
export NVM\_DIR="\/home\/docker\/.nvm"
\[ -s "$NVM\_DIR\/nvm.sh" \] && . "$NVM\_DIR\/nvm.sh" \# This loads nvm
安装 nvm 成功后就可以安装 node
nvm install v4.6.2
安装可以参考官网安装教程,官网英文说明可能不是太清晰,这里给出安装步骤说明。
安装依赖
sudo apt-get install libtool pkg-config build-essential autoconf automake
下载源码
git clone https://github.com/zeromq/libzmq
进入目录后依次执行
./autogen.sh
./configure
make -j 4
make check
退出一层目录,再给 libzmq 目录权限
chmod -R 777 libzmq/
再进入 libzmq 目录进行安装
sudo make install
最后记得给 ldconfig 权限
sudo ldconfig
找个目录把代码下载下来
git clone https://github.com/reliablejs/reliable-master.git
进入目录后安装模块
npm i
由于公司的网张封了 taobao 的域名,所以这里要修改一下 npm 源,如果有同学公司也封了这个域名的要注意,要么一直报错安装不成功。
修改淘宝源
vi Makefile
找到这一行修改,把--registry=https://registry.npm.taobao.org
这句删去
install:@npm install --registry=https://registry.npm.taobao.org
修改为:
@npm install
修改之后
make build
如果成功会看到以下 webpack 打包的信息
✔ All packages installed (use 56ms, speed 0B/s, json 0(0B), tarball 0B)
Hash: 217303218486bb33071f
Version: webpack 1.13.2
Time: 4064ms
Asset Size Chunks Chunk Names
auth.js 3.78 kB 0 [emitted] auth
dashboard.js 1.14 MB 1 [emitted] dashboard
history.js 1.14 MB 2 [emitted] history
home.js 1.14 MB 3 [emitted] home
index.js 2.42 kB 4 [emitted] index
login.js 3.34 kB 5 [emitted] login
password.js 4.49 kB 6 [emitted] password
signup.js 3.99 kB 7 [emitted] signup
task.js 1.14 MB 8 [emitted] task
user.js 1.4 kB 9 [emitted] user
+ 191 hidden modules
安装完后执行mongo
会有一个蛋痛的报错,折腾了好久。
Failed global initialization: BadValue: Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.
不知道是不是只有 16.0.4 才会有的,处理方法是添加如下环境变量到\/etc\/profile
sudo vi /ect/profile
添加
export LC_ALL=C
使设置生效
source /ect/profile
重启一下服务
sudo service mongod stop
sudo service mongod start
现执行mongo
,应该成功进入交互模式,表示已经成功安装.
这里没什么好讲,安装都很顺利,直接参考网上的教程
进入你 master 的目录,我的是 reliable-master,进入后执行以下命令完成启动
./bin/reliable-master server -p 8080 --verbose
8080 端口随你喜欢改,然后浏览器输入你的服务地址与端口号,done!
由于之前也使用 docker 布署了 MongoDB,所以需要把数据导到新的 db 里,数据包括用户信息与测试信息等,这里给出步骤,如果这些数据你都不在乎可以忽略。
查看 mongo 的容器 id
docker ps
进入 mongo 容器里
docker exec -it <containerId> bash
dump 出数据到指定目录/home/mongo
mongodump -o /home/mongo
把数据拿出来,我想了好久才想到用 scp,由于镜像里没有安装,所以先安装 scp
apt-get update
apt-get install openssh-server
scp 的操作请度娘,目的是要把备份文档拷贝出来,放到你刚才安装的 MongoDB 目录里,我是同一台主机,所以这样写
scp -r /home/mongo <username>@ip_address:~/
把文件传到~/
目录下了,<username>
是你的用户名,ip_address
是你的服务器地址,自己替换。
回到你的 MongoDB 服务器,导入数据
mongorestore ~/mongo/
done!
QQ 群 287162474
钉钉: