后端部署全过程。
后端部署说明
eosvoter
主要分为两大模块。
- 为外界提供服务
- 自身抓取数据
所以,我们给数据抓取提供了一个 docker
,而将服务代码放在宿主机上,自动化部署用的是 jenkins
。
ps:之所以这样做,不是因为这样设计更好,而是,历史问题的遗留。因为,其中一个抓取数据服务用到了 chrome driver
,但是,我图方便没有把它安装到 docker
中,而是安装到了 宿主机上,所以,当时一部分抓取数据的代码也放在了宿主机上。但是,这些都不是问题,这里主要记住,宿主机上运行的是为外界提供服务的代码,docker
中运行的是抓取服务的代码。
一共有两个启动脚本脚本。
- start_app.sh
- 抓取数据
- start.sh
- 为外界提供服务
start_app.sh
主要是开启后台服务
1 | #!/usr/bin/env bash |
start.sh
主要是开启抓取数据的脚本。
1 | #!/usr/bin/env bash |
一般都是,将代码在服务器拉取最新的代码,然后运行 start_app.sh
脚本。
自动化部署
用的是 jenkins
来自动化开启的。
这里有一个颇有意思的点是,正常来讲 jenkins
的自动化部署是,你 push code
后,运行 jenkins
,docker
和宿主机的代码就能自动更新并且运行起来,但是,我并没有这样做,采取以下方法纯属图省力,之后会进行优化。
当我 push
代码后,我会先进入宿主机内,将代码拉下来,然后 jenkins
开启 docker
,其中一个操作就是将最新的代码拷贝一份到 docker
中,然后各自运行相关脚本。
下面的 docker
脚本也能看出。
jenkins
的 Send build artifacts over SSH
模块下的 Exec command
里面的脚本代码是这样的
1 | cd /root/eosvoter |