docker+verdaccio配置私有npm仓库

本文记录了在CentOS 7.2服务器上使用Docker部署Verdaccio私有npm仓库的过程。首先介绍了由于Sinopia的停更而转向使用Verdaccio的原因。接着详细阐述了通过Docker安装Verdaccio的步骤,包括拉取镜像、运行容器、端口映射和目录挂载等。此外,还提及了如何配置和使用Verdaccio,包括修改配置文件、添加用户、发布包等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

最近想要搭建私有npm仓库,把学习搭建过程记录下来

我的服务器用的是腾讯云服务器,系统安装的是 centos7.2

首先上网找到的是sinopia,但是这个从2015开始就已经停止维护,还好有另外一个替代,那就是 verdaccio

verdaccio可以直接使用npm安装本地包进行服务安装,另外可以选择 docker 镜像安装,因为之前就玩 dcoker ,所以我选择了 docker 安装方式

 

docker 安装步骤如下:

拉取最新的verdaccio

docker pull verdaccio/verdaccio

// docker pull verdaccio/verdaccio:4.0.0  // 拉取4.0.0版本

镜像地址:https://hub.docker.com/r/verdaccio/verdaccio

 

运行 verdaccio 镜像

官网是这样的

docker run -d -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio

 

我的配置:

docker run -d -rm -it --name verdaccio -p 4873:4873 -v /data/www/verdaccio/verdaccio/:/verdaccio -v /data/www/verdaccio/app:/usr/local/app verdaccio/verdaccio
### npm私有仓库配置与使用 #### 一、搭建npm私有仓库的方式 可以采用多种方式来搭建npm私有仓库,以下是几种常见的方法及其特点: 1. **Verdaccio** Verdaccio 是一种轻量级的 npm 私有仓库解决方案,适合中小型团队使用。通过简单的安装和配置即可快速部署到公司内网环境[^1]。其主要优势在于无需复杂的权限管理配置。 2. **Nexus Repository Manager** Nexus 提供更强大的功能支持,适用于大型企业场景下的复杂需求。它不仅能够代理公共 npm 仓库,还允许创建多个分组型或托管型存储库,并提供细粒度的身份验证机制[^5]。 3. **Docker容器化方案** 如果希望简化部署流程,则可以选择基于 Docker 的方式运行 verdaccio 或其他类似的工具。这种方式便于维护版本控制以及跨平台迁移[^3]。 #### 二、具体实施步骤说明 ##### (一)利用 Verdaicio 构建本地服务端实例 - 下载并启动 Verdaccio 应用程序; - 修改默认配置文件 `config.yaml` 来指定监听 IP 和端口号等参数; - 访问 Web UI 页面完成初步初始化工作; ##### (二)客户端连接至自定义源地址 对于开发者机器而言,需执行如下命令以便顺利上传下载包资源: ```bash # 安装 nrm 工具用于便捷切换不同注册表 npm install -g nrm # 添加新的远程源记录 nrm add private-source http://your-verdaccio-server-address:port/ # 查看现有选项列表确认新增成功与否 nrm ls # 正式启用目标私有源作为当前活动项 nrm use private-source ``` ##### (三)发布新模块至内部网络中的私有仓库存储位置 当准备就绪之后,按照常规流程推送代码即刻生效: ```bash npm publish --registry=http://your-private-repo-url/ ``` 另外,在某些特定情况下可能还需要额外调整 `.npmrc` 文件内容以适配特殊的安全策略或者路径映射关系[^4]。 #### 三、注意事项 - 确保所有参与者都能够正常访问所设定的服务节点; - 对敏感数据采取必要的加密保护措施防止泄露风险发生; - 根据实际业务规模评估选用合适的技术栈组合形式; ```python import os from dotenv import load_dotenv load_dotenv() PRIVATE_REPO_URL = os.getenv('PRIVATE_NPM_REGISTRY') def publish_package(package_name, version): command = f"npm publish {package_name}@{version} --registry={PRIVATE_REPO_URL}" result = os.system(command) if result != 0: raise Exception(f"Failed to publish package {package_name}") publish_package("example-package", "1.0.0") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值