2019-07-08
服务部署
0

目录

安装
1. 创建verdaccio容器
2. nvm安装
3. 利用nvm安装node(8.9.1)
4. 安装verdaccio、pm2
5. 修改verdaccio-config配置(空格要严格区分,否则无法启动)
6. Dockerfile启动配置
用户权限

Verdaccio 是一个轻量级的、可扩展的、私有的 npm registry 服务器,它允许开发人员在本地网络环境中创建和管理自己的 npm packages,从而加速应用程序的开发和部署。使用 Verdaccio,开发人员可以在不将其代码发布到公共 npm registry 上的情况下共享和重用自己的 npm packages。

本文将记录 Verdaccio 本地部署方法,以下操作均在Linux环境下进行。

安装

1. 创建verdaccio容器

bash
docker run -it -p 4873:4873 --name verdaccio centos bash

2. nvm安装

bash
# 下面两个安装方式,任选其一就行 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash source ~/.bashrc nvm --version # 可查看nvm版本,说明安装成功

3. 利用nvm安装node(8.9.1)

bash
nvm install v10.16.0 # 安装node的稳定版本(npm会同步当前版本的node)

4. 安装verdaccio、pm2

bash
npm install -g verdaccio --registry=https://registry.npm.taobao.org/ npm install -g pm2 --registry=https://registry.npm.taobao.org/

5. 修改verdaccio-config配置(空格要严格区分,否则无法启动)

配置修改注意:配置项前面多个空格,都无法加载。需严格区分空格

config默认存放路径:/root/.config(需启动一次后才会出现verdacci文件夹)

bash
verdaccio # 首次启动自动创建verdacci文件夹,启动后关闭 cd /root/.config/verdaccio vi config.yaml # 修改配置

config.yaml修改如下(部分配置需要提前运行命令)

yaml
# ①.端口号配置 listen: 0.0.0.0:4873 # ②.上行链路修改为淘宝镜像源 uplinks: taobaojs: url: https://registry.npm.taobao.org/ packages: '**': access: $all publish: $authenticated unpublish: $authenticated proxy: taobaojs # ③.日志配置 # 运行:mkdir log # 在verdaccio目录下创建log,存放log日志(不提前创建,会报错) # tip:到本次修改后,pm2 start verdaccio开启服务,查看服务是否正常启动 logs: - {type: rotating-file, format: json, path: /root/.config/verdaccio/log/log.json, level: http, options: {period: 1d, count:3} } # ④.LDAP配置(禁止命令行注册,LDAP登录,编辑htpasswd创建用户) # 参数讲解: # htpasswd如果不加,效果是一样的,禁止注册 # htpasswd添加进去有个好处是,可以通过htpasswd文件创建用户 # LDAP插件安装: # 运行:npm install -g verdaccio-ldap --registry=https://registry.npm.taobao.org/ 全局安装ldap插件 # 查看是否可以成功启动,如果无法启动,尝试 # 运行:npm install verdaccio # 运行:npm install # tip:邮箱全名无法登录,只能使用名字登录, # 比如chenchongzuan@baishishuju.cn无法登录,使用chenchongzuan可以进行登录 ldap: type: ldap client_options: url: "ldap://192.168.50.203:389" searchBase: "ou=Tech,ou=Users,dc=ankang,dc=com" searchFilter: "(uid={{username}})" reconnect: true htpasswd: file: ./htpasswd max_users: -1 # ⑤.包权限修改(任何用户均可发布私有包,只有root用户才可以撤销私有包,私有包存放在company路径下) packages: 'c-*': access: $all publish: $authenticated unpublish: root storage: company 'company-*': access: $all publish: $authenticated unpublish: root storage: company '**': access: $all publish: $authenticated unpublish: root proxy: taobaojs

6. Dockerfile启动配置

创建脚本

bash
vi start.sh

start.sh脚本内容如下:

bash
#!/bin/bash source ~/.bashrc #(或者尝试source /etc/profile) pm2 start verdaccio tail -f /dev/null

修改后,继续执行以下命令

bash
chmod u+x *.sh # 给予脚本启动权限 ./start.sh # 运行./start.sh查看脚本是否可以正常启动 docker commit verdaccio docker/verdaccio # 将verdaccio容器打包成docker/verdaccio镜像

编写Dockerfile,Dockerfile内容如下:

FROM docker/verdaccio WORKDIR /root/.config/verdaccio ENTRYPOINT ["./start.sh"]

创建镜像

bash
docker build -t docker.privete/verdaccio /dockerFile/verdaccio/ # 以 /dockerFile/verdaccio/下的Dockfile为配置进而创建镜像,镜像名为docker.privete/verdaccio

创建容器

bash
docker run -itd -p 4873:4873 --restart=always -v /opt/verdaccio-registry/storage:/root/.config/verdaccio/storage -v /opt/verdaccio-registry/log:/root/.config/verdaccio/log --name front-end-registry docker.privete/verdaccio # 1.端口映射4873 -d(开启后台进程) # 2. --restart=always 关闭时,会自动重启,比如进入容器时,exit退出,容器会自动重启,比如docker start -i 进入,退出后,也会自动重启。除非手动stop # 3. # 主机的/opt/verdaccio-registry/storage的文件夹映射到容器的/root/.config/verdaccio/storage(包) # /opt/verdaccio-registry/log的文件夹映射到容器的/root/.config/verdaccio/log(日志) # 当主机不存在文件夹时,会自动创建 # 4.容器名字为front-end-registry,以 docker.privete/verdaccio镜像为基础

--------------------完结--------------------

用户权限

packages 权限配置:

  • access 没有该权限时,无法下载包和查看包,需登录才能看到包
  • publish 没有该权限时,无法发布包
  • unpublish 如果unpublish已注释掉,则publish定义将授予或拒绝访问权限。不填写或者值为undefined时,则任何用户,都无法删除

权限:

  • root 管理员
  • $all 所有人
  • $authenticated 登录用户
  • $anonymous 匿名用户
  • undefined 不填写时,值也为undefined,任何情况下,都无法操作

本文作者:BARM

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!