使用verdaccio+docker搭建npm私有仓库以及使用
公司内部前端组件或库的共享等,搭建一个
npm
私有库就很方便,现在中大型公司也基本都有自己的npm
私有库,这篇文章,和大家一起共同搭建一个npm
私有库,共同学习
前置条件
- 一台电脑
- 可以联网
一、安装docker
使用的windows版本的 docker Desktop
, 可以直接去 docker Desktop 官方网站去下载,下载完成后正常安装就可以了。
或者使用 winget
安装
winget install Docker.DockerDesktop
linux 下的安装
直接使用各个发行版对应的 pkg manangment 安装,由于本人最熟悉ubuntu,下面给出ubuntu下的安装命令
#Ubuntu
apt install docker
apt install docker-compose // 如需要使用docker-compose可以使用此命令安装
二、基于 Docker 安装 Verdaccio
1、创建相关的目录
mkdir /opt/Docer-container/verdaccio
cd /opt/Docer-container/verdaccio
mkdir conf && mkdir storage && mkdir plugins
cd ./storage && mkdir data && touch htpasswd
cd ../conf touch config.yaml
vim config.yaml
2、创建配置文件
# 存放软件所有软件包的目录
storage: /verdaccio/storage/data
# 存放所有插件的目录
plugins: /verdaccio/plugins
web:
# 网站Title
title: Verdaccio
# 禁用Gravatar头像
# gravatar: false
# 排序方式 asc|desc
# sort_packages: asc
# 是否启用暗黑模式
# darkMode: true
# logo地址
# logo: http://somedomain/somelogo.png
# favicon地址
# favicon: http://somedomain/favicon.ico | /path/favicon.ico
# i18n翻译配置
# i18n:
# 可用列表见:https://github.com/verdaccio/ui/tree/master/i18n/translations
# web: en-US
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
# 最大注册用户数,默认为 "+inf".
# 可用通过设置为-1禁止注册
# max_users: 1000
# 上游npm库,可以设置多个
uplinks:
npmjs:
url: https://registry.npmjs.org/
taobao:
url: https://registry.npmmirror.com/
packages:
# 作用域包
'@*/*':
# 允许所有人访问
access: $all
# 注册用户可访问
publish: $authenticated
# 注册用户可访问
unpublish: $authenticated
proxy: npmjs
'**':
# 默认情况下所有用户 (包括未授权用户) 都可以查看和发布任意包
# 你可以指定 用户名/分组名 (取决于你使用什么授权插件,默认的授权插件是内置的 htpasswd)
# 访问权限有三个关键词: "$all", "$anonymous", "$authenticated"
# $all 表示不限制,任何人可访问;
# $anonymous 表示未注册用户可访问;
# $authenticated 表示只有注册用户可访问
access: $all
# 允许所有注册用户发布/撤销已发布的软件包
# (注意:默认情况下任何人都可以注册)
publish: $authenticated
unpublish: $authenticated
# 如果私有包服务不可用在本地,则会代理请求到'npmjs'
# proxy 可以有多个值,多个值用空格分开
proxy: taobao npmjs
# 您可以指定传入连接的HTTP /1.1服务器保持活动超时(以秒为单位)。
# 值为0会使http服务器的行为类似于8.0.0之前的Node.js版本,后者没有保持活动超时。
# 解决方法:通过给定的配置可以解决以下问题
server:
keepAliveTimeout: 60
# 中间件
middlewares:
audit:
enabled: true
# 日志设置
logs: { type: stdout, format: pretty, level: http }
# 开放远程访问,允许所有IP
listen:
- 0.0.0.0:4873
3、安装运行 Verdaccio
docker run -it --name verdaccio \
-p 4873:4873 \
-v /opt/Docker-container/Verdanccio/conf:/verdaccio/conf \
-v /opt/Docker-container/Verdanccio/storage:/verdaccio/storage \
-v /opt/Docker-container/Verdanccio/plugins:/verdaccio/plugins \
verdaccio/verdaccio
运行成功后就可以通过
http://服务器ip:4873
访问npm
私有库了。
报错处理:
如果提示 fatal--- cannot open config file /verdaccio/conf/config.yaml: Error: CONFIG: it does not look like a valid config file
, 可以执行下面的命令
chcon -Rt container_file_t ./conf
更多解决方法请查看官方文档
三、管理 npn、yarn、pnpm 源
1、替换 npn、yarn、pnpm 源为 http://192.168.188.164:4873/
#npm和pnpm 设置(pnpm使用npm配置的源)
npm config set registry http://192.168.188.164:4873/
# yarn 设置
yarn config set registry http://192.168.188.164:4873/ #-g是全局设置
直接把默认的npm
源替换为我们私有库,但是多个源的时候不太好管理。所以推荐使用nrm
来管理我们的npm
源。
2、使用 nrm
管理 npm
源
# 全局安装nrm
$ npm i -g nrm
# 添加私有库
$ nrm add vnpm http://192.168.188.164:4873
# 查看现有的npm源
$ nrm ls
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
private ------ http://192.168.188.164:10086/repository/npm/
* vnpm --------- http://192.168.188.164:4873/
# 设置npm源
$ nrm use vnpm
管理
yarn
的源,可以使用yrm
来管理;用法同nrm
四、注册用户和发布npm包
1、注册私有库用户
# 注册用户
$ npm adduser
复制代码
2、登陆私有库用户
# 登录用户
$ npm login
# 查看当前登录用户
$ npm who am i
复制代码
3、在私有库发布包
# 发布当前包
$ npm publish
到此,所有的安装,注册用户,发布包流程都已经完成了,各位小伙伴如果有什么问题可以私聊/留言。
使用verdaccio+docker搭建npm私有仓库以及使用的更多相关文章
- 使用verdaccio 搭建npm私有仓库
使用verdaccio 搭建npm私有仓库 1. 为什么要搭建私有的npm仓库? 随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要.但是对于公司的 ...
- 使用 docker + verdaccio 搭建npm私有仓库
本文介绍如何使用 verdaccio 搭建私有npm仓库,以及使用 docker 时如何映射到本地目录,方便简单对仓库进行各种操作.系统环境是 Linux. verdaccio verdaccio 是 ...
- docker 搭建本地私有仓库
1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p : registry: 这将 ...
- Docker学习笔记六:Docker搭建企业级私有仓库
前言 Docker不仅是一个强大的服务器部署工具,而且它还有一个官方的Docker Hub registry用于储存Docker镜像.上传镜像到Docker Hub是免费的,上传的镜像文件同时也对公共 ...
- 基于Docker搭建pypi私有仓库
一.搭建 1.准备htpasswd.txt文件 该文件内容包含上传包至仓库时验证的用户名和密码 pip install htpasswd htpasswd -sc htpasswd.txt <u ...
- Docker搭建本地私有仓库
安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制 ...
- npm私有仓库 配置verdaccio在docker环境
前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个npm私有的仓库是很有必要的. 在这里简单介绍如何使用 verdoccio 在docker环境下的配置.verdocci ...
- NPM 私有仓库的搭建
NPM 私有仓库的搭建 为什么搭建私有仓库 balabala,当然是有需求的时候嘛 搭建流程 介绍和安装verdaccio 备注: 程序启动后,配置文件为/home/work/.config/verd ...
- 基于IP的docker private registry 私有仓库的搭建
鉴于国内的网络环境,如果公司内部大量使用docker,镜像上传下载将是个非常耗时的工作,搭建一个私有仓库可以很好的解决自有镜像的存储,如果你在私有网络,不能使用域名的话,那么本文可以作为一个很好的例子 ...
随机推荐
- 多台云服务器的 Kubernetes 集群搭建
环境 两台或多台腾讯云服务器(本人搭建用了两台),都是 CentOs 7.6, master 节点:服务器为 4C8G,公网 IP:124.222.61.xxx node1节点:服务器为 4C4G,公 ...
- PotPlayer播放百度云盘视频
需要的工具 PotPlayer.油猴tampermonkey.坚果(这个不用下载,有个账号就行) 下载地址:百度网盘 步骤 安装油猴tampermonkey 拖拽Tampermonkey_4.14.c ...
- 更好的Android多线程下载框架
/** * 作者:Pich * 原文链接:http://me.woblog.cn/ * QQ群:129961195 * Github:https://github.com/lifengsofts */ ...
- 攻防世界pwn题:Recho
0x00:查看文件信息 一个64位二进制文件,canary和PIE保护机制没开. 0x01:用IDA进行静态分析 分析:主程序部分是一个while循环,判断条件是read返回值大于0则循环.函数ato ...
- 动态树 — Euler_Tour_Tree
一般提到动态树,我们会不约而同的想到 LCT,这算是比较通用,实用,能力较为广泛的一种写法了.当然,掌握 LCT 就需要熟悉掌握 Splay 和各种操作和知识.ETT(中文常用称呼:欧拉游览树)是一种 ...
- CF989C A Mist of Florescence 题解
因为 \(1 \leq a,b,c,d \leq 100\) 所以每一个颜色都有属于自己的联通块. 考虑 \(a = b=c=d=1\) 的情况. AAAAAAAAAAAAAAAAAAAAAAAAAA ...
- Tomcat深入浅出——Session与Cookie(四)
一.Cookie 1.1 Cookie概念 Cookie:有时也用其复数形式 Cookies.类型为"小型文本文件",是某些网站为了辨别用户身份,进行Session跟踪而储存在用户 ...
- for循环 --和复合赋值
阶乘 1.n!=1x2x3x4x...xn 2.写出一个程序,让用户输入n,然后计算输出n! *变量: *显然读用户的输入需要一个int的n,然后计算的结果需要用一个变量保存,可以是int的facto ...
- JUC源码学习笔记1——AQS和ReentrantLock
笔记主要参考<Java并发编程的艺术>并且基于JDK1.8的源码进行的刨析,此篇只分析独占模式,后续在ReentrantReadWriteLock和 CountDownLatch中 会重点 ...
- Markdown 的基本使用
Markdown基本语法 1.标题 //标题的写法 #一级标题 ##二级标题 ###三级标题 //以此类推... 效果: 一级标题 二级标题 三级标题 2.分割线 使用三个或以上-或*表示,并且改行不 ...