使用 Docker Compose 部署 Verdaccio

22 min read

本文将指导您如何使用 Docker 和 Docker Compose 部署 Verdaccio,这是一个轻量级的私有 npm 仓库。按照以下步骤操作,您将在不到一分钟内完成部署。

软件简介

Verdaccio 是一个开源的私有 npm 仓库,允许开发团队在内部管理和分发 npm 包。它简单易用,支持插件扩展,并且可以与现有的 npm 注册表无缝集成。通过 Verdaccio,您可以:

  • 私有包管理:安全地托管内部使用的 npm 包。
  • 缓存公共包:缓存来自官方 npm 注册表的包,提高安装速度并减少外部依赖。
  • 访问控制:通过用户认证和权限管理,控制谁可以发布和访问包。
  • 插件扩展:根据需求扩展功能,如集成 CI/CD 工具、监控等。

前提条件

  1. 安装 Docker:确保您的系统已经安装了 Docker。您可以参考 Docker 官方文档 进行安装。
  2. 安装 Docker Compose:确保您的系统已经安装了 Docker Compose。参考 Docker Compose 安装指南

部署步骤

1. 创建 Verdaccio 目录

首先,在服务器上创建用于存储 Verdaccio 配置和数据的目录。

mkdir -p /data/env/verdaccio

2. 授权目录

为了确保 Verdaccio 能够正确存储镜像,您需要为目录设置适当的权限。

chmod -R 777 /data/env/verdaccio

注意:将目录权限设置为 777 允许所有用户对该目录进行读写操作。根据您的安全需求,您可能需要调整权限设置。

3. 创建 docker-compose.yml 配置文件

在 Verdaccio 目录下创建 docker-compose.yml 文件,并添加以下内容:

version: "3.6"

services:
  verdaccio:
    image: verdaccio/verdaccio
    container_name: verdaccio
    user: root
    privileged: true
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime
      - /home/env/verdaccio/conf:/verdaccio/conf
      - /data/env/verdaccio/storage:/verdaccio/storage
      - /data/env/verdaccio/plugins:/verdaccio/plugins
    ports:
      - "7780:4873"

4. 启动 Verdaccio

使用 Docker Compose 启动 Verdaccio 服务。

docker-compose up -d

5. 访问 Verdaccio

部署完成后,您可以通过浏览器访问 Verdaccio:

http://<您的服务器IP>:7780

6. 完成安装

至此,Verdaccio 已经成功部署并运行。您可以根据需要进一步配置和使用 Verdaccio 作为您的私有 npm 仓库。

配置 Verdaccio

部署完成后,您可能需要根据团队需求对 Verdaccio 进行进一步配置。以下是一些常见的配置项:

配置文件路径

默认情况下,配置文件位于 /home/env/verdaccio/conf/config.yaml。您可以根据需要编辑此文件以调整设置。

设置用户认证

您可以启用和配置用户认证,以控制谁可以发布和访问包。Verdaccio 支持多种认证方式,如 htpasswd、LDAP 等。

添加插件

Verdaccio 支持插件扩展功能。您可以将插件放置在 /data/env/verdaccio/plugins 目录,并在配置文件中启用它们。

常见问题

无法存储镜像

确保 /data/env/verdaccio 目录具有正确的权限。使用 chmod -R 777 /data/env/verdaccio 可以解决权限问题,但请根据实际需求调整权限设置以提高安全性。

端口被占用

如果端口 7780 被其他服务占用,您可以在 docker-compose.yml 文件中修改端口映射。例如,将主机端口改为 8888

ports:
  - "8888:4873"

然后重新启动服务:

docker-compose down
docker-compose up -d

查看日志

要查看 Verdaccio 的运行日志,可以使用以下命令:

docker logs -f verdaccio

参考资料


如果您在部署过程中遇到任何问题,欢迎在下方留言或参考官方文档获取更多帮助。