Verdaccio私服搭建

前言

Verdaccio是一个轻量级的私有npm注册表,由Node.js创建,并且是sinopia@1.4.0的衍生版本,与其100%向后兼容。Verdaccio的名称来源于意大利中世纪晚期fresco绘画中流行的一种绿色。
Verdaccio的主要功能是在本地环境中管理和共享npm软件包。它可以在本地机器上搭建一个私有的npm注册表,用于存储和分发自己的npm包或来自公共npm注册表(如npmjs)的软件包。它的工作原理可以简单地概括为,作为一个中间层位于npm客户端和真实的npm注册表之间。
Verdaccio有一个内置的数据库来存放所有的npm包,除此之外它还有一套默认的鉴权机制:htpasswdhtpasswd鉴权是通过htpasswd文件来存放所有的npm用户,鉴权、添加/删除的时候通过对文件的读写来实现。此外,Verdaccio还提供了强大的身份认证系统。

步骤

拉取verdaccio镜像

docker pull verdaccio/verdaccio

启动verdaccio容器

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

复制config.yaml到宿主主机

docker cp verdaccio:verdaccio/conf /opt/verdaccio/conf/

修改config.yaml配置

#我们可以联系的其他已知存储库列表
uplinks:
  npmjs:
    url: https://registry.npmjs.org/
packages:
  've-**':
    # scoped packages
    access: $authenticated #可以访问的用户,$authenticated授权后的,@all表示所有用户(包括未授权的),还可以指定用户,例如:zhangsan lisi
    publish: liuhuiwen #可以发布的用户,格式同access一样
    unpublish: liuhuiwen #可以取消发布的用户,格式同access一样
    proxy: npmjs # 代理地址
# 通过https域名访问,则需要配置下面的证书
https:
  key: /verdaccio/conf/npm.liulingfengyu.cn.key
  cert: /verdaccio/conf/npm.liulingfengyu.cn.pem
i18n:
  web: zh-CN # 汉化

创建htpasswd文件

该文件对应config.yaml中配置的htpasswd地址

修改宿主主机verdaccio文件夹的权限为777

发布时会出现权限问题,这里提前设置

sudo chmod -R 777 /opt/verdaccio

持久化启动容器

删除之前启动的容器,改为持久化启动,并且通过https访问

docker run -it -d --name verdaccio -p 4873:4873 -e VERDACCIO_PROTOCOL=https -v /opt/verdaccio/storage:/verdaccio/storage -v /opt/verdaccio/conf:/verdaccio/conf -v /opt/verdaccio/plugins:/verdaccio/plugins verdaccio/verdaccio

配置nginx代理地址

server {
  listen 443 ssl;

  server_name custom.cn; # 改为自己的域名
  root html;
  index index.html index.htm;
  # 配置证书
  ssl_certificate /usr/share/nginx/html/cert/custom.cn.pem;
  ssl_certificate_key /usr/share/nginx/html/cert/custom.cn.key;

  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

  ssl_prefer_server_ciphers on;

  location / {
    # 转发地址(这里必须写https)
    proxy_pass https://127.0.0.1:4873;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

启动nginx

docker run --name nginx-test -p 8080:80 -d nginx 

总结

完成上述步骤我们就完成了Verdaccio的搭建,下面是展示效果
image.png


  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
搭建Docker私有仓库,您可以按照以下步骤进行操作: 1. 安装Docker:首先,确保您的系统上已经安装了Docker。您可以从Docker官方网站(https://www.docker.com/)上下载并安装适用于您操作系统的版本。 2. 创建Docker私有仓库容器:使用以下命令创建一个Docker私有仓库容器: ``` docker run -d -p 5000:5000 --restart=always --name registry registry:2 ``` 这将在本地主机的5000端口上启动一个私有仓库容器,并将其命名为`registry`。 3. 配置Docker客户端:编辑Docker配置文件,使其能够连接到私有仓库。在Linux系统上,配置文件位于`/etc/docker/daemon.json`,在Windows上,配置文件位于`C:\ProgramData\docker\config\daemon.json`。如果配置文件不存在,可以创建一个新的。 在配置文件中添加以下内容: ``` { "insecure-registries" : ["your-server-ip:5000"] } ``` 将`your-server-ip`替换为您私有仓库所在的服务器IP地址。如果您的私有仓库在本地主机上,可以使用`localhost`或`127.0.0.1`。 4. 重启Docker服务:保存并关闭配置文件后,重启Docker服务以使配置生效。您可以使用以下命令来重启Docker服务: ``` sudo systemctl restart docker ``` 5. 使用私有仓库:现在您可以使用私有仓库来推送和拉取镜像。例如,要推送一个镜像到私有仓库,使用以下命令: ``` docker tag image-name your-server-ip:5000/image-name docker push your-server-ip:5000/image-name ``` 将`image-name`替换为您要推送的镜像的名称。 要从私有仓库中拉取镜像,使用以下命令: ``` docker pull your-server-ip:5000/image-name ``` 将`image-name`替换为您要拉取的镜像的名称。 这样,您就成功搭建了一个Docker私有仓库。您可以在私有仓库中存储和管理自己的镜像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘凌枫羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值