一,从零开始搭建
官方提供了 docker 镜像,为了省事直接使用 docker 安装
1.1 安装docker
使用 yum-utils 管理 yum 仓库
# 安装yum-utils yum install -y yum-utils
添加 docker 的 yum 源
# 添加docker-ce源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新yum缓存 yum --enablerepo=updates clean metadata
安装 docker docker-compose 并运行
# 安装 yum -y install docker-ce docker-ce-cli docker-compose # 启动 systemctl enable docker && systemctl start docker
如果提示 找不到docker-compose
试试:先执行 yum -y install epel-release
在执行安装命令
1.2 配置docker镜像源
已经配置过的直接下一步
# docker配置文件夹 mkdir /etc/docker # 编辑配置文件 vi /etc/docker/daemon.json
修改 registry-mirrors 和 dns 配置
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
重启docker
# 重启配置 systemctl daemon-reload # 重启docker systemctl restart docker
1.3 Verdaccio 容器配置
以安装到 /verdaccio
目录为例
安装共需要3个文件
- docker-compose.yaml
docker容器配置
- config.yaml
verdaccio配置文件
- htpasswd
用户密码文件
# 目录结构 └── /verdaccio 项目目录 ├──/conf 配置目录 │ └── config.yaml verdaccio 配置文件 │ └── htpasswd 用户密码文件 │ ├──/storage 包存放目录 │ ├──/plugins 插件目录 │ └── docker-compose.yaml docker-compose 配置文件
- 首先创建 docker-compose.yaml 文件
docker-compose 是定义和运行docker容器的工具,通过 .yaml
文件配置容器
# 创建目录 mkdir /verdaccio # 创建yaml文件 touch /verdaccio/docker-compose.yaml
- 修改容器配置
# 用vi编辑器打开文件 vi /verdaccio/docker-compose.yaml
输入以下内容
version: '3.1' services: verdaccio: image: verdaccio/verdaccio container_name: "verdaccio" networks: - node-network environment: - VERDACCIO_PORT=4873 ports: - "4873:4873" volumes: - "./storage:/verdaccio/storage" - "./conf:/verdaccio/conf" - "./plugins:/verdaccio/plugins" networks: node-network: driver: bridge
version:docker对应版本号 (构建时出错请改小一点版本号)
image:verdccio镜像
三个 4873
是verdaccio访问端口号
volumes:是挂载物理机的目录到 docker 中
- 第一行:存储目录,用于保存npm包
- 第二行:配置文件目录,下一节 Verdaccio 配置 会讲解
- 第三行:插件目录
1.4 Verdaccio 配置
官网配置文档👉 verdaccio
- 创建配置文件 config.yaml
Verdaccio 的配置文件,上行链路、插件、密码文件位置等参数都通过 config.yaml
配置
# 创建目录 mkdir /verdaccio/conf # 创建文件 touch /verdaccio/conf/config.yaml
- 修改配置
# 用vi编辑器打开文件 vi /verdaccio/conf/config.yaml
输入以下内容
# npm包缓存目录 storage: /verdaccio/storage # 插件目录 plugins: /verdaccio/plugins # 密码文件 auth: htpasswd: file: /verdaccio/conf/htpasswd # 上行链路 uplinks: npmjs: url: https://registry.npmjs.org timeout: 10s cache: false yarn: url: https://registry.yarnpkg.com timeout: 10s cache: false npmmirror: url: https://registry.npmmirror.com packages: # 带@的包只能登录后发布 "@*/*": # 访问包的权限 access: $all # 发布包的权限 publish: $authenticated # 代理链 proxy: npmjs npmmirror yarn # 普通包所有人都能发布 "**": access: $all publish: $all proxy: npmjs npmmirror yarn middlewares: # 启用 npm audit audit: enabled: true logs: - { type: stdout, format: pretty, level: http } #监听端口 listen: 0.0.0.0:4873
在 packages 中共有三种用户角色
角色 |
描述 |
$all |
所有用户 |
$anonymous |
匿名用户 |
$authenticated |
登录的用户 |
在packages中可以定义某个包的发布下载规则
网站的标题、Logo等设置参考 github web
字段
官方默认配置文件👉 github.com/verdaccio/v…
1.5 创建容器并启动
执行以下命令
# 进入verdaccio目录 cd /verdaccio # 构建 docker-compose up --build
看到这样的提示后就可以打开浏览器访问verdaccio了
此时docker运行在前台,Ctrl + C 结束命令就无法访问
1.6 启动和停止
-d
是在后台运行的意思
docker-compose up -d
停止
# 查看运行中的容器 docker ps -a # 找到pid (CONTAINER ID) docker stop *****
💥 如果出现启动以后无法访问,需要升级内核之后重启
yum update
注意事项:
容器停止后再次启动会出现webUI界面包丢失的问题。
# 在/verdaccio目录下 # 查看运行中的容器 docker-compose ps #停止 docker-compose stop verdaccio #重新启动 docker-compose start verdaccio