NPM上为我们提供了许多官方安装包,我们可以从npmjs中上传或者下载npm安装包,但是:
- 由于网络的限制,会导致npm包的上传和下载速度较慢;
- 生产使用的npm包中包含了许多隐私信息,若放到NPM仓库上容易被外部人员获取。
- cnpm
- verdaccio
- sinopia
- nexus (本案例选择该技术)
- 支持多种类型的仓库,如:Docker、Npm、Nuget等
- 集成LDAP
- 支持权限管理
- 支持Webhook
- docker && docker-compose
- 10.0.95.63 主机(暂时使用个人电脑作为私人镜像仓库服务器)
- 安装Docker,通过Docker镜像安装
- 端口映射:
外部端口 | 映射端口 | 仓库类型 | 描述 | 5565 | 8081 | group | 后台访问主端口;同时是安装依赖的主端口,包含下面两种类型的仓库 | 5567 | 8082 | hosted | 私有仓库,内部开发上传的仓库,不对外暴露 | 5566 | 8083 | proxy | 代理仓库,即第三方仓库,如taobao |
---|
-
拉取nexus官方docker镜像
docker pull sonatype/nexus3 # 官方镜像 docekr pull 10.0.95.63:5566/nexus # 本地镜像
-
创建
docker-compose.yml
文件sudo mkdir nexus && cd nexus sudo vim docker-compose.yml
将下面的代码复制到
docker-compose.yml
文件中version: "3.7" services: nexus: image: sonatype/nexus3 # 或者为10.0.95.63:5566/nexus ports: - "5565:8081" # 后台访问主端口,同时也是group仓库的访问端口 - "5567:8082" # 代理仓库端口,即第三方仓库,如taobao - "5566:8083" # 私有仓库端口,内部开发上传的仓库,不对外暴露 restart: always container_name: "nexus" # 容器名称 volumes: - "/media/mes/file2/nexus3:/nexus-data" # 将/nexus-data挂载本地的/media/mes/file2/nexus3
运行容器:
docker-compose up -d
-
在浏览器中打开路径
http://10.0.95.63:5565
,若能打开以下界面,则代表配置成功然后点击
Sign in
进行登录,首次登录时,账号为admin,密码自动生成在/media/mes/file2/nexus3/admin.password
文件中cat /media/mes/file2/nexus3/admin.password
将密码输入到登录框中即可
-
点击
Configuration
--Repositories
--Create repository
创建仓库分别创建以下三种类型的仓库
-
创建
hosted
类型的仓库,选择npm(hosted)
,输入仓库名称npm-hosted
,然后点击Create repository
创建仓库; -
创建
proxy
类型的仓库,选择npm(proxy)
,输入仓库名称npm-taobao
,输入代理地址https://registry.npm.taobao.org/
勾选
Auto blocking enabled
,将Maximum component age修改为-1
,将Maximum metadata age修改为30
,然后点击Create repository
创建仓库; -
创建
group
类型仓库,选择npm(group)
,输入仓库名称npm-group
,然后将上面创建的仓库移到Members
中,然后点击Create repository
创建仓库; -
创建完成后,如下图
-
验证
# 方法一: npm config set registry http://10.0.95.63:5565/repository/npm-group/ # 点Copy即可获取该地址 npm login --registry=http://10.0.95.63:5565/repository/npm-group/ # 依次输入账号密码以及邮箱 npm init -y # 创建一个新目录并进行初始化 npm install koa # 验证是否能从仓库中获取包 # 方法二:使用nrm,便于管理npm镜像源 npm install -g nrm # 安装nrm nrm ls # 查看可选的镜像源 nrm add nexus http://10.0.95.63:5565/repository/npm-group/ # 添加镜像源 nrm set-auth -u mes -p Mes_2020 nexus # 设置访问权限 nrm set-email nexus mes@domain.cn # 设置邮箱 nrm use nexus # 使用本地镜像源 npm init -y # 创建一个新目录并进行初始化 npm install koa # 验证是否能从仓库中获取包
-
若登录报错:
Unable to authenticate, need: BASIC realm="SOnatype nexus Repository Manager"
,解决方案:
- 选择
Security
下的Realms
,将npm Bearer Token Realm
从Available
移到Active
中
- 选择
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!