使用 docker + verdaccio 搭建npm私有仓库
本文介绍如何使用 verdaccio
搭建私有npm仓库,以及使用 docker
时如何映射到本地目录,方便简单对仓库进行各种操作。系统环境是 Linux。
verdaccio
verdaccio
是一个开源的轻量的私有 npm proxy registry
(npm 代理资源库),安装使用都非常方便。
forked自 sinopia@1.4.0
。
安装
使用 npm / yarn
进行全局安装
Node.js v12+
npm 4.x+ 或yarn
全局安装
npm install -g verdaccio yarn global add verdaccio
启动
verdaccio 或者使用 pm2 start verdaccio
使用浏览器访问web服务,端口号4873,
http://0.0.0.0:4873
,访问成功就可以了。
使用 docker
镜像安装
安装
docker
,略在
docker
下安装verdaccio
镜像
使用如下命令即可:docker pull verdaccio/verdaccio
安装镜像成功:
运行
verdaccio
,使用docker
命令运行镜像,创建verdaccio
容器// 名称verdaccio, 端口 4873
docker run -it --name verdaccio -p 4873:4873 verdaccio/verdaccio
启动容器成功:
启动成功以后,实际上就可以在浏览器访问了,http://0.0.0.0:4873
。
接下来先介绍几个操作容器的docker
命令。docker
操作容器的部分命令新建并启动:docker run CONTAINER
启动停止的容器:docker start CONTAINER_ID
查看容器:docker container ls (docker ps)
停止容器:docker stop CONTAINER_ID
删除容器:docker rm CONTAINER_ID映射本地目录
首先,创建
/home/verdaccio
目录,以下在该目录下操作。
其次,创建conf
目录,并添加verdaccio
的config.yaml
配置文件。
接着处理映射目录,一般有以下两种方式:直接映射本地目录,启动
verdaccio
docker run -it --name verdaccio -p 4873:4873 -v /home/verdaccio/storage:/verdaccio/storage -v /home/verdaccio/conf:/verdaccio/conf -v /home/verdaccio/plugins:/verdaccio/plugins verdaccio/verdaccio
-v:容器目录映射到本地目录
或者使用
docker-compose
启动
添加docker-compose.yml
文件,使用docker-compose up
命令启动version: '3'
services:
verdaccio:
image: verdaccio/verdaccio
container_name: "verdaccio"
network--mode: "bridge"
environment:
- VERDACCIO_PORT=4873
ports:
- "4873:4873"
volumes:
- "/home/verdaccio/storage:/verdaccio/storage"
- "/home/verdaccio/conf:/verdaccio/conf"
- "/home/verdaccio/plugins:/verdaccio/plugins"
network_mode: "bridge"
注意: 本地目录
/home/verdaccio/storage
需要设置权限,不然会因为权限问题而导致操作失败。chown -R 10001:65533 /home/verdaccio/storage
本地目录映射成功后,会简化很多操作,比如:
在/home/verdaccio
目录下会创建storage
目录,如果发布了包,则在此目录下的data
中能找到对应的包文件夹,可以查看所有上传的npm包,此处也可以直接删除该包;
也会在conf
映射到配置文件,方便我们需要时修改配置信息。拷贝
verdaccio
配置文件如果不想做本地目录映射,也可以使用如下命令,拷贝出
verdaccio
镜像的配置文件。
docker cp
:在容器和本地文件系统之间,拷贝文件或文件夹。docker cp verdaccio:/verdaccio/conf/config.yaml /home
私有库部署成功
verdaccio
安装启动成功后,就可以直接网络访问。
当页面出现下图所示,就表示私有库搭建成功,后续就可以进行私有包的发布下载。
发布一个包
有了私有库以后,就可以在其上发布 npm
包。
但初始化时需要先添加用户,设置用户名和密码等,然后就可以直接发包了。
添加用户
npm adduser --registry http://0.0.0.0:4873/
输入用户名、密码和邮箱。
publish
当需要把某个项目发布到私有库时,直接
publish
。npm publish --registry http://0.0.0.0:4873/
发布成功后,刷新页面,就能看到最新发布的包。
install
在项目目录下增加 .npmrc
文件,指定仓库地址。
registry=http://0.0.0.0:4873/
使用 npm install 包名
,即可安装私有包了。
verdaccio 配置文件解读
常用配置如下:
# 素有包的保存路径
storage: /verdaccio/storage/data
# 插件的保存路径
plugins: /verdaccio/plugins
# 通过web访问
web:
title: Verdaccio
# 账号密码文件,初始不存在
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
# max_users:1000
# 默认1000,允许用户注册数量。为-1时,不能通过 npm adduser 注册,此时可以直接修改 file 文件添加用户。
# 本地不存在时,读取仓库的地址
uplinks:
npmjs:
url: https://registry.npmjs.org
# 对包的访问操作权限,可以匹配某个具体项目,也可以通配
# 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 }
使用 docker + verdaccio 搭建npm私有仓库的更多相关文章
- 使用verdaccio 搭建npm私有仓库
使用verdaccio 搭建npm私有仓库 1. 为什么要搭建私有的npm仓库? 随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要.但是对于公司的 ...
- 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库
本章是<实战maven私有仓库>系列的第三篇,在前两章中,我们先在linux搭建maven私有仓库,然后在开发环境使用此仓库,本章我们在docker下快速搭建maven私有仓库,然后像前面 ...
- 使用verdaccio+docker搭建npm私有仓库以及使用
公司内部前端组件或库的共享等,搭建一个npm私有库就很方便,现在中大型公司也基本都有自己的npm私有库,这篇文章,和大家一起共同搭建一个npm私有库,共同学习 前置条件 一台电脑 可以联网 一.安装d ...
- Docker基础-搭建本地私有仓库
1.使用registry镜像创建私有仓库 安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境: docker run -d -p 5000:5000 regist ...
- npm私有仓库 配置verdaccio在docker环境
前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个npm私有的仓库是很有必要的. 在这里简单介绍如何使用 verdoccio 在docker环境下的配置.verdocci ...
- NPM 私有仓库的搭建
NPM 私有仓库的搭建 为什么搭建私有仓库 balabala,当然是有需求的时候嘛 搭建流程 介绍和安装verdaccio 备注: 程序启动后,配置文件为/home/work/.config/verd ...
- docker使用registry搭建本地私有仓库
参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时 ...
- Docker容器之搭建本地私有仓库
Docker容器之搭建本地私有仓库 本地私有仓库搭建的具体步骤 首先下载 registry 镜像 docker pull registry 在 daemon.json 文件中添加私有镜像仓库的地址并重 ...
- 前端项目模块化的实践1:搭建 NPM 私有仓库管理源码及依赖
以下是关于前端项目模块化的实践,包含以下内容: 搭建 NPM 私有仓库管理源码及依赖: 使用 Webpack 打包基础设施代码: 使用 TypeScript 编写可靠类库 使用 TypeScript ...
随机推荐
- 通过Swagger文档生成前端service文件,提升前端开发效率
在企业级的项目开发过程中,一般会采用前后端分离的开发方式,前后端通过api接口进行通信,所以接口文档就显得十分的重要. 目前大多数的公司都会引入Swagger来自动生成文档,大大提高了前后端分离开发的 ...
- LDAP-初见
目录 什么是LDAP? LDAP 协议能解决什么问题? Spring Boot中使用LDAP来统一管理用户信息 添加用户 连接LDAP服务端 什么是LDAP? LDAP 的全称是 Lightweigh ...
- VUE中v-for更新检测
口诀: 数组变更方法,就会导致 v-for 更新,页面更新 数组非变更方法:返回新数组,就不会导致 v-for 更新,更新值检测不到可采用覆盖或者 this.$set() 数组变更方法如下: 1. a ...
- Java只有值传递
二哥,好久没更新面试官系列的文章了啊,真的是把我等着急了,所以特意过来催催.我最近一段时间在找工作,能从二哥的文章中学到一点就多一点信心啊! 说句实在话,离读者 trust you 发给我这段信息已经 ...
- Coursera Deep Learning笔记 改善深层神经网络:超参数调试 正则化以及梯度相关
笔记:Andrew Ng's Deeping Learning视频 参考:https://xienaoban.github.io/posts/41302.html 参考:https://blog.cs ...
- [对对子队]会议记录4.16(Scrum Meeting7)
今天已完成的工作 何瑞 工作内容:完成成本和分数系统 相关issue:实现成本和分数系统的逻辑 相关签入:4.16签入1 吴昭邦 工作内容:对接流水线和成本和分数系统 相关issu ...
- 基于自定义Validator来验证枚举类型
基于自定义Validator来验证枚举类型 一.背景 二.技术要点 三.实现一个自定义枚举校验. 1.需求. 2.实现步骤 1.自定义一个 Sex 枚举. 2.自定义一个 Enum 注解 3.编写具体 ...
- java调用js脚本语言
在我们开发的过程中,可能有这么一种情况,在java中需要取调用js方法完成一些事情.那么什么时候可能出现这种情况呢.比如我们使用爬虫模拟登录别的网站,但有些网站前台使用js对密码进行了加密处理,那么就 ...
- Windows7下面手把手教你安装Django - Hongten
我所使用的操作系统是Windows7,内存是2G 在搜索了一些资料发现,对于Django的安装,详细的真的很少,都说的很简化,然而,这篇blog可以手把手教你成功安装Django 对于Django的详 ...
- 一步一步学ROP之gadgets和2free篇(蒸米spark)
目录 一步一步学ROP之gadgets和2free篇(蒸米spark) 0x00序 0x01 通用 gadgets part2 0x02 利用mmap执行任意shellcode 0x03 堆漏洞利用之 ...