Beta环境部署代码没生效
开发完代码,本地调试测试验证通过,部署集成Test环境验收OK,部署Beta时代码没生效! Jenkins构建显示成功,走OPS发布系统正常部署成功,But最新修改代码没有生效... ...
So,查看Jenkins上workspace从git拉取的代码源码资源包下检索最新修改特征串base64后的图片(后文简称“特征串”),正常更新没问题
到发布平台OPS下载tar包,解压缩,查找特征串正常没问题;jump平台申请Beta该应用的权限,使用SecureCRT登录服务器,至项目相关路径查看src代码也已经更新... ...
冷静整理思路2分钟,分析所访问页面的资源及页面结构,项目属于阿里系egg+mysql+react+umi的技术栈(见下图),node部署前后端分离,前端页面build构建后JS、CSS在public路径下,页面访问的资源源代码已更新没问题那么就只能是服务器public下静态资源没有更新,于是开始验证排查
服务器至public目录查看文件时间戳,属于构建日前一天,有异样;服务器资源来自OPS发布平台,OPS资源来自Jenkins构建打包系统,直接至Jenkins构建机器查看public资源,时间戳也不对,检查Jenkins构建日志,执行到build:beta中有个Error,提示“public目录没权限访问”,非中断继续执行打tar包,发包至OPS发布机... ...
申请Jenkins服务器的权限,登录进入前端工程Beta环境该项目的public根目录,ll -a发现只有public文件夹居然是root权限咯!!
切换root账号,移除public目录,重新在走Jenkins的Web终端点击build构建,走OPS发布,问题解决... ....
