当前位置: 首页 > article >正文

【docker npm】npm 私库

1.部署环境

  • window 11 x64
  • Docker Desktop 4.34.1 (166053)
    • Docker Engine v27.2.0

1.1.Docker 镜像源

1.1.1.Docker Engine 配置

{
  "builder": {
    "features": {
      "buildkit": true
    },
    "gc": {
      "defaultKeepStorage": "32GB",
      "enabled": true
    }
  },
  "experimental": true, 
  "hosts": [
    "tcp://0.0.0.0:2375"
  ],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

2.拉取Nexus3镜像

# 拉取镜像
docker pull verdaccio/verdaccio:latest
# 保存镜像源(选)
docker save -o verdaccio_verdaccio_latest verdaccio/verdaccio:latest

3.创建并运行Nexus3

docker run -it -d --name npmmirror -p 4873:4873 -v D:\docker\npm\verdaccio\storage:/verdaccio/storage -v D:\docker\npm\verdaccio\conf:/verdaccio/conf -v D:\docker\npm\verdaccio\plugins:/verdaccio/plugins --privileged=true --restart=always verdaccio/verdaccio

说明

  • --privileged=true 允许容器使用管理员权限
  • --restart=always 自动重启

config.yaml

#
# This is the config file used for the docker images.
# It allows all users to do anything, so don't use it on production systems.
#
# Do not configure host and port under `listen` in this file
# as it will be ignored when using docker.
# see https://verdaccio.org/docs/en/docker#docker-and-custom-port-configuration
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#

# path to a directory with all packages
storage: /verdaccio/storage/data
# path to a directory with plugins to include
plugins: /verdaccio/plugins

web:
  # WebUI is enabled as default, if you want disable it, just uncomment this line
  #enable: false
  title: NPM 私库
  # comment out to disable gravatar support
  # gravatar: false
  # by default packages are ordercer ascendant (asc|desc)
  # sort_packages: asc
  # darkMode: true
  # logo: http://somedomain/somelogo.png
  # favicon: http://somedomain/favicon.ico | /path/favicon.ico
  # rateLimit:
  #   windowMs: 1000
  #   max: 10000

# translate your registry, api i18n not available yet
# i18n:
# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
#   web: zh-CN

auth:
  htpasswd:
    file: /verdaccio/storage/htpasswd
    # Maximum amount of users allowed to register, defaults to "+infinity".
    # You can set this to -1 to disable registration.
    max_users: 100

# a list of other known repositories we can talk to
uplinks:
  cnpmjs:
    url: http://registry.npm.taobao.org/
  npmjs:
    url: https://registry.npmmirror.com/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: cnpmjs

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all

    # allow all known users to publish/publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated
    unpublish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: cnpmjs

# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
server:
  keepAliveTimeout: 60

middlewares:
  audit:
    enabled: true

# log settings
logs: { type: stdout, format: pretty, level: http }
#experiments:
#  # support for npm token command
#  token: false
#  # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string
#  tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}'
#  # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file
#  tarball_url_redirect(packageName, filename) {
#    const signedUrl = // generate a signed url
#    return signedUrl;
#  }

# This affect the web and api (not developed yet)
i18n:
  web: zh-CN

htpasswd

登录的用户名和密码: admin/123456

admin:POhfqY8PVG4gA:autocreated 2023-09-06T11:01:37.149Z

初次运行容器后,将上面两个文件覆盖到挂载的本地文件,然后重新启动

4.使用npm私库

# 登录
npm login --registry http://xxx.xxx.xxx.xxx:4873/
# 发布
npm publish --registry http://xxx.xxx.xxx.xxx:4873/
# 删包
npm unpublish xxx --registry http://xxx.xxx.xxx.xxx:4873/
npm unpublish xxx@1.0.0 --registry http://xxx.xxx.xxx.xxx:4873/
# 查看本地仓库
npm config get registry
# 设置本地仓库(选)
npm config set registry "http://xxx.xxx.xxx.xxx:4873/"

pnpm set registry http://xxx.xxx.xxx.xxx:4873/
yarn config set registry http://xxx.xxx.xxx.xxx:4873/


http://www.kler.cn/a/313875.html

相关文章:

  • MFC工控项目实例二十九主对话框调用子对话框设定参数值
  • Vue 的生命周期函数 和 Vuex
  • Redis - 集群(Cluster)
  • 计算机网络(3)网络拓扑和IP地址,MAC地址,端口地址详解
  • 利用阿里云下载 WebRTC 源码
  • 深入探讨 MySQL 配置与优化:从零到生产环境的最佳实践20241112
  • 《高等代数》线性相关和线性无关(应用)
  • C++之职工管理系统(细节Q)
  • Spring Boot集成Akka remoting快速入门Demo
  • Spring-关于IOC的解释及相关理解(如何从三个方面理解)
  • 计算机人工智能前沿进展-大语言模型方向-2024-09-16
  • leetcode 380.O(1) 时间插入、删除和获取随机元素
  • 电脑ip会因为换了网络改变吗
  • JavaScript web API完结篇---多案例
  • Abp vNext(五)集成MQTTnet,可收发消息
  • 【楚怡杯】职业院校技能大赛 “云计算应用” 赛项样题六
  • Android架构组件中的MVVM模式实战应用与数据绑定技巧
  • Python精选200Tips:156-160
  • 力扣刷题--3033. 修改矩阵【简单】
  • 【sgCreateCallAPIFunctionParam】自定义小工具:敏捷开发→调用接口方法参数生成工具
  • 执行 npm报错 Cannot find module ‘../lib/cli.js‘
  • 电脑技巧:Win11家庭版和专业版之间的区别详解
  • KVM环境下制作ubuntu qcow2格式镜像
  • xml中的转义字符
  • 【我的 PWN 学习手札】tcache stash with fastbin double free —— tcache key 绕过
  • 前端web端项目运行的时候没有ip访问地址