Docker 安装verdaccio

1 使用 docker 镜像安装

在 docker 下安装 verdaccio 镜像使用如下命令即可:

docker pull verdaccio/verdaccio

如果安装失败,可以修改国内镜像

进入docker配置目录

cd /etc/docker

修改 daemon.json 文件 ,不存在可以 touch daemon.json 创建,设置镜像地址

{
  "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}

重启守护线程 && 重启docker

systemctl daemon-reload
systemctl restart docker

2. 运行 verdaccio,使用 docker 命令运行镜像,创建 verdaccio 容器

// 名称verdaccio, 端口 4873
docker container run -it --name verdaccio -p 4873:4873 -d verdaccio/verdaccio

3. 映射本地目录

docker container run -it --name verdaccio -p 4873:4873 -v /home/verdaccio:/verdaccio -d verdaccio/verdaccio

tips : 本地目录 /home/verdaccio/storage 需要设置权限,不然会因为权限问题而导致操作失败。

chown -R 10001:65533 /home/verdaccio/storage

发布一个包

有了私有库以后,就可以在其上发布 npm 包。
但初始化时需要先添加用户,设置用户名和密码等,然后就可以直接发包了。

添加用户

npm adduser --registry http://0.0.0.0:4873/
// 输入用户名、密码和邮箱。

publish 发布

npm publish --registry http://0.0.0.0:4873/

4. 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 }

配置npm

docker exec XXX npm config set registry https://registry.npmmirror.com/
docker exec XXX npm config rm proxy
docker exec XXX npm config rm https-proxy
docker exec XXX yarn config set sass-binary-site https://cdn.npmmirror.com/binaries/node-sass