用Docker搭建cnpm私有仓库以及私有仓库的使用

本文详细介绍了如何使用Docker快速搭建cnpm私有仓库,并提供了修改配置及使用私有仓库的具体步骤,包括发布和下载私有包。

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

用Docker搭建cnpm私有仓库以及私有仓库的使用

搭建cnpm私有仓库

这是官方文档: Deploy a private npm registry in 5 minutes 但是按照这个跑不起来,一直报环境的环境,所以我稍微修改了下代码,下面是我的Dockerfile:

FROM node:10-alpine
MAINTAINER qiao <445271466@qq.com>

RUN npm install -g cnpm && cnpm i -g cnpmjs.org sqlite3

COPY config.json /root/.cnpmjs.org/

VOLUME /root/.cnpmjs.org

EXPOSE 7001 7002
CMD ["cnpmjs.org", "start"]
复制代码

cnpmjs.org修改的部分配置, cnpmjs.org默认配置

{
    "admins": {
      "dev": "dev"
    },
    "scopes": [
      "@md"
    ],
    "enablePrivate": true,
    "bindingHost": "0.0.0.0",
    "registryHost": "localhost:17001"
  }
复制代码

admins是仓库用户 scopes是域,私有包都要加上这个前缀 registryHost是一个坑,默认是r.cnpmjs.org, 若不修改,安装私有包的时候会从这个地址的仓库获取,会报404错误,因为这是公有仓库地址,私有包并没有传到上面, 我们需要将他改成容器映射出来的地址,我容器映射出来的地址是localhost:17001,就将它改成这个。 若你需要修改这个端口,两个方法:

  1. 克隆我的项目github地址,修改配置文件,安装下面的方法自己创建镜像,生成容器。
  2. 用我的镜像生成容器,进入容器修改配置文件,然后重启。
制作Docker镜像

docker image build -t cnpmjs.org:1.0 .

生成容器

docker run -d -p 17001:7001 -p 17002:7002 --name mdnpm.org cnpmjs.org:1.0

推送镜像到dockerhub

先登录自己的docker账号:docker login 推送镜像的规范是:docker push 注册用户名/镜像名 本地的镜像需要先打个tag,标上自己的用户名和版本号 docker tag cnpmjs.org:1.0 dryqiao/cnpmjs.org:1.0 docker push dryqiao/cnpmjs.org:1.0 然后如下图,推送成功!

这里我将容器的7001,7002映射到17001和17002上,因为7001容易被占用

通过dockerhub一步生成容器

我把镜像传到dockerhuub上了,可以跳过以上步骤直接使用, docker run -d --name cnpmjs.org -p 17001:7001 -p 17002:7002 dryqiao/cnpmjs.org

现在在浏览器打开localhost:17002,能看到下图表示仓库搭建成功!

私有仓库的使用

修改cnpm的源:

cnpm set registry http://localhost:17001

ok,现在下载包的时候,会优先去私有仓库获取,若找不到,cnpm会再去公共仓库获取。

发布私有包
cnpm login
cnpm init
cnpm publish
复制代码

出现下图表示发布成功!

可以通过命令查看这个私有包的信息 cnpm view @md/hhh

下载包

cnpm i [packge name]

END

博客地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值