使用Docker搭建Npm私服Verdaccio

简介: 使用Docker搭建Npm私服Verdaccio

前言


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


安装verdaccio镜像


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

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

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

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


创建并启动verdaccio容器


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


在root目录下创建verdaccio/conf目录,conf目录下放置config.yaml和htpasswd文件。config.yaml是verdaccio的配置文件,htpasswd是放置npm账户的用户名和密码,但是用户名和密码需要进行MD5编码。其中-p是指递归循环创建目录。在线编码网址

mkdir -p /root/verdaccio/conf  
  • 放置包文件
mkdir -p /root/verdaccio/storage
  • 给容器对物理目录的读写权限
chown -R 100:101 /root/verdaccio/
  • 创建config.yaml配置文件并进行设置
cd /root/verdaccio/conf
vi config.yaml
# 所有包的保存路径  
 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 }
  • 生成htpasswd文件,放置加密后的账户密码
touch htpasswd
  • htpasswd 文件具体内容如下:
guilai:$apr1$ajqWS1jR$02HsYf6WZWPZkV9/slcM1
  • 接下来我们就开始创建并启动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

-p:端口映射(宿主机端口:容器端口,即将主机端口映射到容器端口

-v:容器目录映射到本地目录(宿主机文件目录:容器文件目录,将宿主机文件挂载到容器目录

-d:后台启动容器

-it:以交互式模式启动容易

–name:容器名称


nrm 的使用


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


将组件库发布到私有服务


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


  • 发布
npm publish //设置了源为私有服务的源
npm publish --registry http://xxxxxx:4873 //未设置源

发布后可以查看自己上传的组件库

安装包


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

nrm use ceshiRegistry

方法2:新建.npmrc文件

always-auth=true
registry=http://xxxxx:4873/

然后

npm install  //安装的就是你设置的源


目录
相关文章
|
7月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
492 1
|
前端开发 jenkins 应用服务中间件
使用verdaccio打造自己的npm私有化仓库
使用verdaccio打造自己的npm私有化仓库
759 0
使用verdaccio打造自己的npm私有化仓库
|
2月前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
127 0
|
5月前
|
Web App开发 JavaScript 前端开发
npm私服verdaccio 搭建
npm私服简化团队内部包管理,提供私密组件存储与快速访问。Verdaccio作为热门选择,基于Node.js,易部署且功能丰富。搭建后,CI/CD流程提速,维护统一,版本清晰。安装仅需全局`npm install -g verdaccio`,启动简易。发布组件需注册、登录及`npm publish`至自定义registry。配置文件(`config.yaml`)支持定制,如更换logo或启用HTTPS。常见问题包括主题定制与解决500错误。进阶话题如域名绑定与自动化版本更新将在后续探讨。寻求同道,共同优化与运维,提升私服稳定性与实用性。
189 0
npm私服verdaccio 搭建
|
资源调度 Ubuntu 前端开发
使用verdaccio+docker搭建 npm 私有仓库以及使用
公司内部前端组件或库的共享等,搭建一个`npm`私有库就很方便,现在中大型公司也基本都有自己的`npm`私有库,这篇文章,和大家一起共同搭建一个`npm`私有库,共同学习
652 0
|
存储 关系型数据库 jenkins
软件测试|Docker搭建测试用例平台 TestLink
软件测试|Docker搭建测试用例平台 TestLink
软件测试|Docker搭建测试用例平台 TestLink
|
应用服务中间件 测试技术 nginx
|
Java 持续交付 Docker
十一、Docker搭建部署SpringCloud微服务项目Demo(二)
十一、Docker搭建部署SpringCloud微服务项目Demo
|
SpringCloudAlibaba 关系型数据库 MySQL
十一、Docker搭建部署SpringCloud微服务项目Demo(一)
十一、Docker搭建部署SpringCloud微服务项目Demo
|
jenkins Java Linux
docker搭建jenkins
自动化部署可以说是项目的必须,其中jenkins可以说是标配了。jenkins在持续集成、持续交付、持续部署方面做得都很好也就是常说的CI、CD。这篇文章就总结下使用docker来搭建jenkins的过程,并记录这中间踩过的坑,防止再踩,同时也为想要学习jenkins的同学提供一点借鉴。
480 0
docker搭建jenkins