背景--私服的好处
- 节省外网带宽
- 加速maven构建
- 部署第三方构件(特别是无法从公共仓库下载的构件)
- 提高稳定性(内网部署,更少地依赖外网)
- 降低中央仓库的负荷
构件,好比我们的藏书,去书店或商城买书是有成本的,一般先看看自己的书柜里是否有无该书,再考虑去外面买。 书柜就是本地仓库, 其他的都是远程仓库。在家里看书的成本最小,高效且方便;当然也就减少了快递小哥的配送压力。
一、安装nexus
docker run --rm -it -p 8087:8081/tcp sonatype/nexus3:latest
docker ps
# 查看admin用户的初始密码
docker exec -it {containerId} /bin/bash
cat /nexus-data/admin.password
二、新建仓库
仓库种类.png 登录.png npm的三种仓库.png新建宿主仓库、代理仓库、仓库组等三个种类的仓库。maven可以直接从宿主仓库下载构件;也可以从代理仓库下载构件,而代理仓库会间接地从远程仓库下载并缓存构件;最后为了方便,我们利用仓库组下载构件。
需要注意的是:仓库组没有实际内容(用虚线表示),它会转向包含该构件的宿主仓库或者代理仓库。
1、新建npm hosted仓库
新建npm hosted.png2、新建npm proxy仓库
新建npm proxy.png3、新建npm group仓库
新建npm group.png 新建好的三个仓库.png需要注意的是,memebers为多个,远程仓库的先后顺序决定了下载顺序。
三、使用仓库
设置镜像为私有仓库(仓库组)的地址,而不是淘宝的地址。
npm config set registry http://192.168.8.28:8087/repository/npm-public/
npm config get registry
npm i -verbose
浏览器访问地址:
地址是http://192.168.8.28:8087/service/rest/repository/browse/npm-taobao-proxy/,注意它不是仓库地址。 image.png image.png
可以看出,代理仓库已经把构件都缓存在了我们的私服上。
四、构建部署到私服
略
五、使用镜像
使用仓库就可以了,为什么还要使用镜像?我的理解是,充分使用私服的好处,让所有的请求都通过私服,没有漏网之鱼!
网友评论