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_NAME verdaccio 系统用户
VERDACCIO_USER_UID 10001 用于应用文件夹权限的用户标识
VERDACCIO_PORT 4873 verdaccio 端口
VERDACCIO_PROTOCOL http 默认的 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 镜像。

其它

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了