使用verdaccio搭建企业npm私有仓库

作者:devops_锋

前言:

verdaccio简介

操作步骤

1. 规划目录

2. 关闭防火墙

3. 准备配置文件config.yaml

4. 准备密码文件htpasswd

5. 拉取镜像并创建容器

6. 进入容器完成基本配置

7. 弄一个测试包做发布测试以及本地拉取

8. 本地拉取npm仓库的包

附录


前言:

为游戏公司客户端搭建npm仓库,统一对包进行管理

verdaccio简介

一个轻量级的Node.js私有代理注册中心,是一个简单的、零配置要求的本地私有npm注册表。无需整个数据库即可开始使用,开箱即用,并且能代理其他注册表(例如npmjs.org)还引入了缓存下载的模块

操作步骤

1. 规划目录

root@debian10:/data/verdaccio/volume# tree
.
├── conf
│   ├── config.yaml。主配置文件
│   └── htpasswd。 身份认证
├── plugins。 插件目录
└── storage. 数据目录

2. 关闭防火墙

ufw disable
iptable -F

3. 准备配置文件config.yaml

storage: /verdaccio/storage

plugins: /verdaccio/plugins

auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd

security:
  api:
    jwt:
      sign:
        expiresIn: 60d
        notBefore: 1
  web:
    sign:
      expiresIn: 7d

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:

  '@*/*':
    # scoped packages
    access: $all
    publish: $all
    proxy: npmjs

  '**':
    access: $all
    publish: $all
    proxy: npmjs
    unpublish: $all

middlewares:
  audit:
    enabled: true

logs:
  - { type: stdout, format: pretty, level: trace }

listen:
  - 0.0.0.0:4873

max_body_size: 600mb

4. 准备密码文件htpasswd

# 网上找个自动生成htpasswd

test:$apr1$PJ2uTbyC$RnRCONXbNONRYcB3dH42C/

5. 拉取镜像并创建容器

docker pull verdaccio/verdaccio
docker run --name verdaccio -itd \
-v /data/verdaccio/volume:/verdaccio \ 
-p 4873:4873 \
verdaccio/verdaccio

6. 进入容器完成基本配置

1. 进来
docker exec -it verdaccio /bin/sh

2. 设置默认仓库源
npm config set registry http://192.168.15.19:4873

3. 添加用户
npm adduser --registry http://192.168.15.19:4873/

4. 登陆账户
npm login
输入更改注册的用户即可

5. 登陆web界面登陆可进入仓库

7. 弄一个测试包做发布测试以及本地拉取

npm publish --registry http://localhost:4873/

8. 本地拉取npm仓库的包

npm install 包名

附录

1. 禁止本地创建用户

auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd
    max_users: -1
    
  # 将最大用户数设为-1,这样就没办法自由注册了

2.认证权限问题

(verdiaco只支持给已认证的用户拿包)
- $authenticated  认证的用户,即已经登陆了的用户
- $anoymous  匿名用户,未登录用户
- $all 所有用户,包含以上两种
使用内网搭建的npm仓库对用户认证上没太大的需求,客户端只是用来对包进行统一管理和拉取,用匿名即可,或者后期需要用户权限可以找我一起弄就可。

3. 使用容器卷不逊于修改配置文件问题

chown 10001:65533 /data/verdaccio/volume/ -R

4.本地拉取npm仓库包失败

原因1:package.json里的依赖包问题

原因2:npm版本问题,更新,重下。。

5.adduer失败

原因:本地与远程npm未做绑定(且不能用127.0.0.1)因为用的是容器,得使用宿主机的ip来绑定

npm config set --registry http://宿主机ip:4873

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值