Nexus搭建npm私服
搭建
是什么
Sonatype Nexus Repository OSS是一个著名的开源仓库管理系统,可以作为开发团队的一个很好的选择。
安装
version: '3'
services:
nexus:
image: sonatype/nexus3:3.61.0
restart: always
container_name: ${CONTAINER_NAME}
environment:
- TZ=Asia/Shanghai
ports:
- ${PANEL_APP_PORT_HTTP}:8081
volumes:
- ./data:/nexus-data
登陆
cat cat /nexus-data/admin.password
默认账号admin
admin
xxxxxxxx
个人信息
/#user/account
访问 nexus建立一个 docker仓库
docker仓库类型- hosted: 此类型的仓库,能够push 和 pull操做,能够看成咱们项目开发中的私有仓库
- proxy: 此类型的仓库,只能够进行 pull操做,能够代理一些 中央仓库等
- group: 此类型的仓库,只能够进行 pull操做,用于将多个仓库放到一个组中,便于拉取数据(docker镜像等)使用。
测试
╰─$ docker build -f Dockerfile -t taolin/vue3-test .
╰─$ docker login http://10.1.23.61:9001
╰─$ docker tag taolin/vue3-test 10.1.23.61:9001/vue3
╰─$ docker push 10.1.23.61:9001/vue3 1 ↵ 1 ↵ 1 ↵
然后查询
npm仓库
创建存储空间(如果使用默认的存储空间,此步骤可省略)
创建一个类型为file的 blob
新建仓库
- hosted(私有仓库):用于发布个人开发的npm组件
- proxy(代理仓库):可以代理npm和淘宝镜像
- group(组合仓库):对外公开的仓库,集合了hosted和proxy
注意:选择要包括的仓库,越靠上优先级越高,如果私有仓库在上,用户下载npm包的时候会优先下载私有仓库中的,如果私有仓库没有再去代理仓库中下载。
创建完成
创建用户
用户的状态值一定是Active\n
权限配置
设置权限,这一步如果不设置,是不能发布自己的npm包的
激活 npm Bearer Token Realm
将npm Bearer 移动到Active,否则npm会无法访问代理库,导致下载失败
创建开发权限组对hosted npm私服库读写权限
用户端使用私服发布私服npm
用户端设置npm的registry为group仓库
nrm add npm-server http://xxxxxxxxx:8081/repository/npm-group/
npm login
推送
推送npm包到nexus
npm publish –registry http://${ip}:8081/repository/${npm_hosted}
校验发布成功
上传完成,即可在local看到上传的包,而由于group集合了local 和 proxy,group中也可看到缓存的包。
其他
匿名用户可以下载私服npm包,只有dev组内的帐户才能publish包到hosted私服
在npm中,访问需要用户名密码的仓库,如果没有登录会收到如下的错误提示。
npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"
需要允许匿名访问
但是匿名用户仍然可以看到发布了那些包, 所以需要重新建立一个Roles然后取消默认的游客角色。
本机私服配置
npm config get registry
\