介绍
- 前端采用react(umi),node端采用egg
- 前端部署jenkins+gitee
- egg部署 jenkins
1、前端项目自动化部署
react(umi)注意事项,我们需要使用hash:true,这个hash umijs 默认使用的是contenthash:8
1.1、jenkins安装
1.2、jenkins安装成功后,需要下载的插件
- nodejs 注意:下载成功后需要重启jenkins
- ssh 相关的插件
- gitee 通过码云进行代码管理
1.3、gitee
进入jenkins容器,生成公钥和私钥
docker exec -it [jenkins容器id] /bin/bash
cd /root/.ssh // 看下是否存在公钥和密钥
ssh-keygen -t rsa // 生成公钥和私钥
# 生成后将公钥放在gitee上,私钥在jenkins中
1.4、jenkins部署开始
- 当我们部署项目时,添加私钥位置
- 构建触发器,选择gitee
- 构建环境
- 构建,选择shell
npm install --registry=registry.npm.taobao.org
- 构建完成后,上传目标服务器
#复制
cp -r /home/packageA/* /home/cp/packageB/
#移动
mv /home/packageA/* /home/packageB/
2、egg部署
npm install --production
npm run prod
egg更改端口号注意:需要使用hostname:0.0.0.0而不能是127.0.0.1,否则启动有问题
跨域,我们采用nginx反向代理的方式解决跨域
# nginx/conf.d/default.conf
#接口转发
location ~ /api/ {
proxy_pass http://xxx:7002;
}
jenkins持续部署主要配置
3、jenkins容器时区问题
jenkins容器默认时间为美国时间,下面为修改方式
docker exec -it [jenkins容器id] /bin/bash
其中第三步vi /etc/sysconfig/clock
,找不到对应文件,下面为替换步骤
- echo Asia/Shanghai >/etc/timezone
其他操作不变