阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Verdaccio 部署与运维

      Docker

      要下载 (pull) 最新的预先 - 创建的 docker 镜像:

      docker pull verdaccio/verdaccio
      

      https://a.axihe.com/npm/verdaccio/docker_verdaccio.gif

      使用特定版本

      对于主版本:

      docker pull verdaccio/verdaccio:4
      

      对于次版本:

      docker pull verdaccio/verdaccio:4.0
      

      对于特定(补丁)版本:

      docker pull verdaccio/verdaccio:4.0.0
      

      如果您对标签列表感兴趣, 请访问 https://hub.docker.com/r/verdaccio/verdaccio/tags/

      使用 Docker 运行 Verdaccio

      要运行 docker 容器:

      docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
      

      最后一个参数定义要使用的图像。上一行将从 dockerhub 中提取最新的预构建映像(如果尚未执行此操作)。

      如果您已经用 verdaccio 作为最后参数在本地创建一个镜像。

      您可以用 -v 来绑定安装 conf, storageplugins 到主机文件系统中:

      V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
        -p 4873:4873 \
        -v $V_PATH/conf:/verdaccio/conf \
        -v $V_PATH/storage:/verdaccio/storage \
        -v $V_PATH/plugins:/verdaccio/plugins \
        verdaccio/verdaccio
      

      注意:Verdaccio 在容器内以非 root 用户身份(uid = 10001)运行,如果您使用 bind mount 覆盖默认值,则需要确保将 mount 目录分配给正确的用户。在上面的示例中,您需要运行,sudo chown -R 10001:65533 /opt/verdaccio 否则将在运行时收到权限错误。推荐使用 docker 卷(volume)来替代绑定安装。

      属性默认描述
      VERDACCIO_APPDIR/opt/verdaccio码头工人工作目录
      VERDACCIO_USER_NAMEverdaccio系统用户
      VERDACCIO_USER_UID10001用于应用文件夹权限的用户标识
      VERDACCIO_PORT4873verdaccio 端口
      VERDACCIO_PROTOCOLhttp默认的 http 协议

      插件

      插件可以在单独的目录里安装,并用 Docker 或者 Kubernetes 挂载,然而,请确保使用与 Verdaccio Dockerfile 相同的基镜像的本地依赖项来创建插件。

      FROM verdaccio/verdaccio
      
      USER root
      
      ENV NODE_ENV=production
      
      RUN npm i && npm install verdaccio-s3-storage
      
      USER verdaccio
      

      Docker 和自定义端口配置

      当前使用 docker 时,将忽略 host:portconf/config.yamlunder 中配置的任何内容。listen

      如果要在其他端口下访问 Verdaccio docker 实例,可以 5000docker run 命令中说添加环境变量 VERDACCIO_PORT=5000,然后公开该端口 -p 5000:5000

      V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
        -e "VERDACCIO_PORT=8080" -p 8080:8080 \
        verdaccio/verdaccio
      

      当然,您给 -p 参数表的数字必须匹配。

      在 Docker 中使用 HTTPS

      您可以配置 verdaccio 要监听的协议,类似于端口配置。 在 config.yaml 里指定证书后,您必须用"https"覆盖 PROTOCOL 环境变量中的默认值 (“http”)。

      docker run -it --rm --name verdaccio \
        --env "VERDACCIO_PROTOCOL=https" -p 4873:4873
        verdaccio/verdaccio
      

      使用 docker-compose

      • 获取 docker-compose 的最新版本。
      • 创建并运行容器:
      $ docker-compose up --build
      

      您可以通过在上面的命令前面加上来设置要使用的端口(用于容器和主机)VERDACCIO_PORT=5000。

      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"
            - "./config:/verdaccio/conf"
            - "./plugins:/verdaccio/plugins"
      networks:
        node-network:
          driver: bridge
      
      

      Docker 将生成一个 named volume(命名卷),它用于存储持久化应用程序数据。 您可以使用 docker inspect 或者 docker volume inspect 来查看此 volume(卷)的物理位置并编辑配置,比如:

      $ docker volume inspect verdaccio_verdaccio
      [
          {
              "Name": "verdaccio_verdaccio",
              "Driver": "local",
              "Mountpoint": "/var/lib/docker/volumes/verdaccio_verdaccio/_data",
              "Labels": null,
              "Scope": "local"
          }
      ]
      

      创建您自己的 Docker 镜像

      docker build -t verdaccio .
      

      还有一个创建 docker image(镜像)的 npm 脚本,因此您还可以执行以下操作:

      yarn run build:docker
      

      请注意:第一个镜像的创建要花费几分钟时间,因为它需要运行 npm install,而且,当您任何时候更改任何没有列在

      .dockerignore 里的文件,它也需要运行那么长的时间。

      请注意,您需要在您的机器上安装 docker 来执行以上任何 docker 命令, docker 可执行程序应该在您的 $PATH 里。

      Docker 示例

      有个分开的 repository(资源库)承载多个配置来用 verdaccio 生成 Docker 镜像,例如,reverse proxy(反向代理服务器):

      https://github.com/verdaccio/docker-examples

      Docker 自定义创建

      如果您基于 Verdaccio 制作了镜像,请随时将其添加到此列表中。

      • docker-verdaccio-gitlab
      • docker-verdaccio
      • docker-verdaccio-s3 专用 NPM 容器可以备份到 s3
      • docker-verdaccio-ldap
      • verdaccio-ldap
      • verdaccio-compose-local-bridge
      • docker-verdaccio
      • verdaccio-docker
      • verdaccio-server
      • coldrye-debian-verdaccio coldrye-debian-nodejs 支持的 verdaccio docker 镜像。

      其它

      目录
      目录