react+egg自动化构建项目

577 阅读1分钟

介绍

  • 前端采用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部署开始

image.png

  • 当我们部署项目时,添加私钥位置

image.png

image.png

  • 构建触发器,选择gitee image.png

image.png

  • 构建环境

image.png

  • 构建,选择shell

npm install --registry=registry.npm.taobao.org

image.png

  • 构建完成后,上传目标服务器
#复制
cp -r /home/packageA/* /home/cp/packageB/
#移动
mv /home/packageA/* /home/packageB/

image.png

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持续部署主要配置

image.png

3、jenkins容器时区问题

jenkins容器默认时间为美国时间,下面为修改方式

docker exec -it [jenkins容器id] /bin/bash

Linux 修改时区为中国上海时间

其中第三步vi /etc/sysconfig/clock,找不到对应文件,下面为替换步骤

  • echo Asia/Shanghai >/etc/timezone

其他操作不变

4、jenkins配置参数

image.png

image.png

image.png

image.png