YonBIP前端去iframe资源上传oss部署文档说明
说明:必须是完成去iframe的前端模块,静态资源上传到阿里云OSS;
一:现状
目前YonBIP项目前端项目是node方式启动,承担以下功能:
- 请求路由功能;
- 静态资源托管;
目前已经去iframe的领域(请求路由功能由公共前端mdf-node提供),各个领域的前端项目只剩余静态资源托管功能。
二:实现目标
目前在进行前端去node,静态化资源以及静态资源使用oss方式存储,方案有如下步骤:
- dockerfile修改,去掉node,增加nginx,减少资源消耗—非推送镜像方式的应用均可关闭流水线最后一步”执行部署”节点;
- 静态资源上传到oss;
-
三:脚本程序说明
功能
version的生成;
- version.json文件的修改;
-
环境标识信息
daily 日常
- pre 预发
- prod 生产
- sandbox 沙箱
脚本命令规范
示例{项目domain名称}_static_{环境标识}.sh
finpub_static_daily.sh
domain 信息
| 领域 | 模块 | domain | 应用名 | | —- | —- | —- | —- | | 财务 | 财务公共(会计期间 会计期间方案) | finbd | finbe-web | | 财务 | 总账(凭证查询) | finpub | finpub-web |
四:脚本程序更新步骤
1:修改dockerfile
在流水线dockerfile里面按照自己的情况修改执行目录, domain信息,脚本名称;
示例
##上传静态资源到ossRUN cd /design/fipub_web \ ###进入到项目的目录里面,需要获取git信息&& curl -s http://10.3.35.108:6666/soft/node_static/daily/finpub_static_daily.sh |bash
2: 修改脚本
脚本只需要修改如下三处
- 环境标识 env
- domain信息 domain
- 静态资源所在位置 source_dir
示例
env=onlinedomain=fiarapsource_dir="/design/fiarap_web/static/public/fiarap"
五:完整示例脚本
#!/bin/bash##auth david lihbt@yonyou.com##本脚本是基础服务前端资源上传到ossenv=predomain=productcentercommitid=`git rev-parse --short HEAD`version=${env}_${commitid}_`date "+%Y%m%d%H%M%S"`source_dir="/design/UPC-Web/static/public/productcenter/"bucket_name=iuap-design-cdnversionjsonname=${env}_version.jsonecho -e "\033[31m ======================================== \033[0m"echo -e "\033[31m =======正在更新${domain}前端资源到OSS==== \033[0m"echo -e "\033[31m ======================================== \033[0m"function download (){curl -o /tmp/ossutil64.tar.gz http://10.3.35.108:6666/soft/node_static/ossutil64.tar.gztar xvf /tmp/ossutil64.tar.gzmv ossutil64 /usr/bin/ossutil64chmod +x /usr/bin/ossutil64}function update_version_json(){echo -e "\033[31m =======修改version.json文件==== \033[0m"sed -i 's#\("version": "\).*#\1'"$version"'"#g' ${source_dir}/version.jsonecho -e "\033[31m =======version.json文件为:${source_dir}/version.json==== \033[0m"}function config_file (){cat <<EOF> /myconfig[Credentials]language=CHendpoint=oss-cn-beijing.aliyuncs.comaccessKeyID=LTAI8odMXQNqlOpsaccessKeySecret=SddOYShX0VVsLhIKcpA4cRc052DjL5EOF}function update_file_to_oss (){#commitid=`git rev-parse --short HEAD`echo -e "\033[31m =======本次代码提交的commitid为:${commitid}==== \033[0m"echo -e "\033[31m =======本次代码提交的version为:${version}==== \033[0m"##查看oss资源ossutil64 -c /myconfig ls oss://${bucket_name}/static/mdf/${domain}/${version}/###长传更新的文件目录ossutil64 -c /myconfig cp -r ${source_dir} oss://${bucket_name}/static/mdf/${domain}/${version}/ --exclude "version.json" -u###上传version.json文件ossutil64 -c /myconfig cp -r ${source_dir}/version.json oss://${bucket_name}/static/mdf/${domain}/version/${versionjsonname} -u####设置version.json set-metaossutil64 -c /myconfig set-meta oss://${bucket_name}/static/mdf/${domain}/version/${versionjsonname} Cache-Control:no-store --update###查看更新后的oss资源ossutil64 -c /myconfig ls oss://${bucket_name}/static/mdf/${domain}/${version}/echo -e "\033[31m ======================================== \033[0m"echo -e "\033[31m =======更新${domain}前端资源到OSS完毕!!! \033[0m"echo -e "\033[31m ======================================== \033[0m"}#####downloadconfig_fileupdate_version_jsonupdate_file_to_oss
注意:上边的这个脚本文件修改问了需要发给宏斌那边,在此之前注意几个事儿:
1.保存格式要是utf-8的
2.执行过程中可能会报错“shell脚本执行错误 $’\r’:command not found”,可以参考https://www.cnblogs.com/manhelp/p/11277584.html 这篇文章
六:不同环境使用的方式
对于非正式环境,上传脚本命令的执行直接放在dockerfile里边就好,然后勾选掉流水线后边的部署环节,点击属性里边的编辑,将实例的个数调整为0,即不启动实例。然后刷新工作台,打开对应的功能节点,看下extend的请求,如果请求的是design.yonyoucloud.com,那说明配置就成功了
