• 使用Docker搭建Npm私服Verdaccio


    前言

    搭建npm私服可以选用多个软件,博主选用verdaccio搭建,什么是Verdaccio呢?官方解释:Verdaccio 是一个 Node.js创建的轻量的私有npm proxy registry。简单来说,我们设计的组件库有隐私性,不方便上传npm,我们就可以部署一个Npm私有服务。

    安装verdaccio镜像

    首先我们服务器上要装有docker

    • 查询可安装的Verdaccio,可以看到verdaccio/verdaccio,表示最新版本。
    docker search verdaccio
    
    • 1
    • 安装
    docker pull verdaccio/verdaccio
    
    • 1

    此时我们将verdaccio镜像拉取完毕,我们可以使用命令查看镜像

    • 查看安装的所有镜像
    docker images
    
    • 1

    创建并启动verdaccio容器

    接下来开始做一些创建容器前的准备工作啦

    • 在root目录下创建verdaccio/conf目录,conf目录下放置config.yaml和htpasswd文件。config.yaml是verdaccio的配置文件,htpasswd是放置npm账户的用户名和密码,但是用户名和密码需要进行MD5编码。其中-p是指递归循环创建目录。在线编码网址
    mkdir -p /root/verdaccio/conf  
    
    • 1
    • 放置包文件
    mkdir -p /root/verdaccio/storage
    
    • 1
    • 给容器对物理目录的读写权限
    chown -R 100:101 /root/verdaccio/ 
    
    • 1
    • 创建config.yaml配置文件并进行设置
    cd /root/verdaccio/conf
    vi config.yaml
    
    • 1
    • 2
    # 所有包的保存路径  
     storage: /verdaccio/storage/data  
    # 插件的保存路径  
     plugins: /verdaccio/plugins  
     
     # 通过web访问  
     web:    
       title: "Verdaccio"  
       
     # 账号密码文件,初始不存在  
     auth:    
         htpasswd:      
         file: /verdaccio/storage/htpasswd  
         algorithm: md5 # 这里选择 md5 作为加密算法
         # max_users: -1 # 不允许自由注册    
         # max_users:1000      
         # 默认1000,允许用户注册数量。为-1时,不能通过 npm adduser 注册,此时可以直接修改 file 文件添加用户。  
         # 本地不存在时,读取仓库的地址  
    uplinks:    
        npmjs:      
          url: https://registry.npmjs.org/ 
        yarn:
           url:https://registry.yarnpkg.com/  
          
    # 对包的访问操作权限,可以匹配某个具体项目,也可以通配  
    # access 访问下载;publish 发布;unpublish 取消发布;  
    # proxy 对应着uplinks名称,本地不存在,去unplinks里取  
    # $all 表示所有人都可以执行该操作  
    # $authenticated 已注册账户可操作  
    # $anonymous 匿名用户可操作  
    # 还可以明确指定 htpasswd 用户表中的用户,可以配置一个或多个。 
    packages:    
      '@*/*':      
        access: $all      
        publish: $authenticated      
        unpublish: $authenticated      
        proxy: npmjs        
      '**':      
        access: $all      
        publish: $authenticated      
        unpublish: $authenticated      
        proxy: npmjs  
        
    # 服务器相关  
    sever:    
      keepAliveTimeout: 60  
      
    middlewares:    
      audit:      
        enabled: true  
        
    # 日志设定  
    logs: { type: stdout, format: pretty, level: http }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 生成htpasswd文件,放置加密后的账户密码
     touch htpasswd
    
    • 1
    • htpasswd 文件具体内容如下:
    guilai:$apr1$ajqWS1jR$02HsYf6WZWPZkV9/slcM1
    
    • 1
    • 接下来我们就开始创建并启动verdaccio容器啦
    docker run -it  
    --name verdaccio 
    -p 4873:4873   
    -v /root/verdaccio/conf:/root/verdaccio/conf   
    -v /root/verdaccio/storage:/root/verdaccio/storage   verdaccio/verdaccio
    
    • 1
    • 2
    • 3
    • 4
    • 5

    -p:端口映射(宿主机端口:容器端口,即将主机端口映射到容器端口
    -v:容器目录映射到本地目录(宿主机文件目录:容器文件目录,将宿主机文件挂载到容器目录
    -d:后台启动容器
    -it:以交互式模式启动容易
    –name:容器名称

    nrm 的使用

    • 安装
    yarn add nrm global
    
    • 1
    • 添加本地镜像
    nrm add ceshiRegistry http:xxxxx:4873
    
    • 1
    • 查看所有的源
    nrm ls
    
    • 1
    • 使用源
    nrm use ceshiRegistry
    
    • 1
    • 删除源(博士只是展示该命令,实际不用删除)
    nrm del ceshiRegistry
    
    • 1

    将组件库发布到私有服务

    • 添加用户
    npm adduser //设置了源为私有服务的源
    npm adduser --registry http://xxxxxx:4873 //未设置源
    
    • 1
    • 2
    • 发布
    npm publish //设置了源为私有服务的源
    npm publish --registry http://xxxxxx:4873 //未设置源
    
    • 1
    • 2

    发布后可以查看自己上传的组件库
    在这里插入图片描述

    安装包

    方法1:设置安装源为私有服务的源

    nrm use ceshiRegistry
    
    • 1

    方法2:新建.npmrc文件

    always-auth=true
    registry=http://xxxxx:4873/
    
    • 1
    • 2

    然后

    npm install  //安装的就是你设置的源
    
    • 1
  • 相关阅读:
    触摸屏与施耐德PLC之间MODBUS无线通讯
    电源模块最大输出电流怎么测试?测试标准是什么?
    Maven的基础使用
    Dapr 的 gRPC组件(又叫可插拔组件)的提案
    基于SSM框架的校园宿舍管理系统 毕业设计源码241738
    【数据结构】二叉树的层序遍历、前序遍历,中序遍历、后续遍历
    记一次 .NET 某游戏网站 CPU爆高分析
    Hbase记录
    高等数学(第七版)同济大学 习题10-5 个人解答
    使用DataSecurity Plus可以快速检测威胁并自动响应事件
  • 原文地址:https://blog.csdn.net/qq_38951259/article/details/127522769