Docker 部署 Nexus 仓库
1.安装 Nexus3
1.创建目录(目录自定义即可)
shell
mkdir -p /home/nexus3
为该目录添加全新
chmod 777 -R /home/nexus3
2.拉取镜像并运行容器
shell
# 搜索镜像
docker search nexus3
# 拉取镜像
docker pull sonatype/nexus3
# 运行容器 8081-nexus3的服务端口 8082-host镜像仓库的服务端口 8083-group镜像仓库的服务端口
docker run -it -d -p 8081:8081 -p 8082:8082 -p 8083:8083 -v /home/nexus3:/nexus-data --name nexus3 -e NEXUS_CONTEXT=nexus sonatype/nexus3
# 查看容器运行的状态
docker ps -a | grep nexus3
# 查看运行的日志
docker logs -f nexus3(或者该容器的ID)
# 访问服务: IP地址+PORT端口号
# 重启容器
docker restart nexus3
# 查看默认的登录密码(宿主机),默认的账户是admin,备注:目前设置的密码是Xianyu@666
cat /home/nexus3/admin.password
# 或者在容器内的/nexus-data/admin.password中
2.Nexus3 角色管理
1.进入角色管理的界面,点击右上角的Create Role
按钮创建角色,如下所示

2.Role Type 选择 nexus role
3.分别填写角色的 ID、名称、描述,权限选择:nx-repository-view-***,保存。如下所示

3.Nexus3 用户管理
在用户管理界面,点击Create local user
按钮进入创建用户的界面,在创建用户界面填写表单信息,并分配上一步创建的角色,如下所示:

4.设置 Realms
如果要搭建 npm 私服的话,发布 npm 库的时候需要通过 npm login 登录,因此在发布的时候需要私服支持 npm breaer token 的方式。
进入到 Realms 设置界面,将 npm Bearer Token Realm 选到右侧,如下所示:

5.创建仓库
nexus3 的仓库类型有下面三种类型
- hosted:宿主仓库,即本地仓库,该仓库用来存放本地项目产生的构建,是团队的内部开发了通用的组件库,都存放在这里
- proxy:代理仓库,用来代理远程仓库,例如代理远程的 npm 仓库
- group:仓库组,可以聚合上面的两者,将 hosted 和 proxy 中的地址聚合成为一个地址,对外暴露为一个地址
创建 nexus 仓库的步骤如下图所示

6.使用 nexus3 搭建 npm 私有源
1.创建仓库,仓库的类型选择 npm(hosted),名称随意
2.创建仓库,仓库的类型选择 npm(proxy),名称随意,Remote storage 即远程仓库的地址,也就是上游代理的 npm 地址,这里填写 taobao 或者 npm 都可以
3.创建仓库,仓库的类型选择 npm(group),名称随意,在 Group 中将之前创建的 hosted 类型的 npm 库和 proxy 类型的 npm 库拖拽到右边
4.通过上面的三个步骤,就创建了 npm 的三种类型的仓库。复制 npm 仓库的地址如下所示

5.将 npm 库发布到 Nexus3 私服仓库,registry 的地址为私服中 hosted 的地址
shell
# 设置镜像源 注意,请将npm的仓库设置为npm(group)组
npm config set registry http://59.36.169.39:8081/repository/fe-npm-group
# 登录指定的npm私服
npm login --registry http://59.36.169.39:8081/repository/fe-npm-hosted/
# 查找指定私服下当前的登录用户
npm whoami --registry http://59.36.169.39:8081/repository/fe-npm-hosted/
# 指定私服下发布npm包
npm publish --registry http://59.36.169.39:8081/repository/fe-npm-hosted/
# 下载只存在于nexus私服中的包,需要切换到私服的npm源切并且需要登录,如果遇到登录401权限的问题,常见的解决办法如下
# 1.检查Realms中是否配置了npm相关的权限
# 2.删除.npmrc文件 rm -rf /Users/用户名/.npmrc
npm i nexus-demo
# 其他npm的操作,请参考下面的一章:使用docker+verdaccio搭建npm私有源
上传之后的包查看如下所示:
