宝塔面板——使用Docker,基于Nexus3 搭建 npm 私仓

682 阅读2分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

本文主讲Nexus的搭建和发包,宝塔面板的配置这里就不讲喽~~

1. Nexus 介绍

Nexus 的全称是Nexus Repository Manager,是Sonatype公司的一个产品。它是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问,我们主要用它来搭建公司私仓,便于团队开发规范化,它不仅仅可以创建 npm 私仓,同样也对NuGet、Docker、Maven、Go、Apt等包管理器和格式提供支持,下面附上一张官网截图:

image-20221107194206878
2. Docker安装Nexus3
// 1. 拉取nexus3镜像
docker pull sonatype/nexus3

// 2. 建立volume持久化数据
docker volume create --name nexus-data

// 3. 运行容器,此时会生成一串容器ID,下面登录密码就在这个文件夹下
docker run --privileged=true -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3 

// 4. Nexus3 要求运行内存为2G以上,如服务器内存过小,可使用下面语句运行容器
docker run -d --restart=always --name=nexus3 -p 8081:8081 --privileged=true -e INSTALL4J_ADD_VM_PARAMS="-Xms512M -Xmx512M -XX:MaxDirectMemorySize=512M" -v /docker/nexus:/var/nexus-data sonatype/nexus3

Tip:序号34选一个即可
3. 测试

(1)本地测试,输入如下指令,如打印出很长一段文本则为成功

curl http://localhost:8081/

(2)服务器测试,打开浏览器,输入地址:http://xx.xx.xx.xx:8081 可看到如下界面即为成功

image-20221107195446213
4. 登录

账号为:admin

密码:第一次为自动生成的,后面登录进去后需要重置密码,路径举例:/var/lib/docker/volumes/ccc2b81d2f4acb345183edf40afb9f0992d46e4f420748b6e8420e2f718574d1/_data

image-20221107201145058

双击打开,如下图,这就是完整的密码:

image-20221107200941640
5. 创建仓库(hosted:私有仓库 proxy:代理仓库 group:仓库组)
image-20221107202334998 image-20221107202602556
(1)配置proxy仓库,使用淘宝代理地址:registry.npm.taobao.org/
image-20221107203429275
(2)配置hosted仓库
image-20221107203258291
(3)配置group仓库
image-20221107204038680
6. 通过 nrm 新增镜像源,(暂时不熟悉nrm的小伙伴可以先了解一下)
(1)拷贝镜像源
image-20221107204553916
(2)nrm 新增镜像
// 1. 查看镜像
nrm ls

// 2. 新增镜像
nrm add myNexus【自定义名称】 http://xx.xx.xx.xx:8081/repository/npm-group/

// 3. 使用镜像
nrm use myNexus
7. 添加权限认证
image-20221107205710940
8. 添加角色
image-20221107210423297
9. 添加用户
image-20221107210838243
10.发包配置:(同学这边假设你已经写好代码了~~)
(1)创建 .npmrc 配置
registry=http://xx.xx.xx.xx:8081/repository/npm-group/
always-auth=true
(2)package.json 配置
image-20221108112202350
(3)仓库登录
pnpm login -–registry=http://xx.xx.xx.xx:8081/repository/npm-hosted/
image-20221107212415867
(4)发包
image-20221107212700943
(5)来看一下
image-20221107212857366 image-20221107212940884
(6)到此就结束啦,下次重新发包时记得要更新版本号😄