-
来到传统行业做程序员,从准备随时提桶跑路到引领技术风潮
背景
制造业央企,七年老程序员,精通JAVA “HELLO WORLD”、SHELL脚本 ECHO “HELLO WORLD”的编写,拥有1分钟装完DOCKER,五分钟装完K8S集群,等“牛逼技能”。
混沌初开,乾坤始奠
纯纯内外网隔离,只能通过特定U盘拷贝,不能用npm,maven,docker仓库,听到这里是不是你已经在准备提桶跑路。开始开发部署,Centos7安装一个vim找半小时的依赖,java升级个jar包版本花半天时间,npm工程只要有更新就直接拷贝所有内容(包括node_moudle)到内网开发,到这里我辞职报告都打好了。
为有牺牲多壮志,敢教日月换新天
心态转变
从“既然无法改变,就设法去享受,效率差就差,多摸摸鱼他不好吗?”到“我也该有做一点事情的必要了”。
计划实施
说干就干,组织众多开发同仁,慷慨激昂一番,大家不出意外,都支持你,这是为全体研发人员谋福利。
- 写出计划,实施方案,技术设计,我们有了仓库服务器;
- 部署nexus,开通端口,开通maven、npm、yum、docker等仓库,我们有了仓库服务;
- 在外网,下载全量Centos7.9的rpm包,梳理经常使用到的maven开发依赖、npm依赖并下载,转储docker常用镜像;
- 在内网,使用安全u盘拷贝,执行批量上传脚本
天不生我王小二,XX公司开发万古如长夜
全部搞定,公司研发人员终于可以在内网有限度的使用这些仓库了,大家都说你活真好!!!
主要脚本及技术
仓库服务
主要采用nexus,一个服务就支持了N多仓库,真好。
maven依赖转移
-
拷贝外网开发机器的maven缓存
-
在相应目录执行
find . -type f -not -path './import\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "admin:123" -X PUT -v -T {} "http://xxxxxxx.com/repository/maven-releases/"/{} ;
-
配置自己的settings.xml,即可使用
npm依赖转移
-
在外网下载前端依赖
cat` `package-lock.json| ``sed` `'s/,/\n/g'` `| ``grep` `"resolved"` `| ``sed` `'s/\"resolved\": \"/curl -O -L /g'` `|``sed` `'s/\"/ /g'` `| ``sed` `'s/?.*//'` `| sh
-
在内网上传依赖到仓库
#设置仓库 npm config set registry http://xxxxx.com/repository/npm-xxgs/ #登录 npm login # 创建上传脚本 touch batch-npm.sh # 输入以下内容 find ./ -name "*.tgz" | while read i do echo ${i##*/} echo ${i} npm publish -registry http://xxxxx.com/repository/npm-xxgs/ ${i} --force-registry done # 运行脚本上传 ./batch-npm.sh
docker镜像
docker比较简单,保存镜像,载入镜像基本就可以完成,此处不多说
总结
在这个过程中,感觉最麻烦的是npm的处理,经历过使用yarn下载,已经写好的工具包下载,但都有一些版本号不一致的问题,最后使用自制脚本下载,才保证了版本号的一致性。
来源:https://www.cnblogs.com/wuwulalala/p/15598661.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置