Verdaccio 部署与运维
Docker
要下载 (pull) 最新的预先 - 创建的 docker 镜像:
docker pull verdaccio/verdaccio
使用特定版本
对于主版本:
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
, storage
和 plugins
到主机文件系统中:
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:port
在 conf/config.yamlunder
中配置的任何内容。listen
如果要在其他端口下访问 Verdaccio docker 实例,可以 5000
在 docker 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 镜像。
其它
- Kubernetes
- Continuous Integration
- Cloud
- Amazon Web Services
- Tools
- Ansible
- Puppet
- Chef Cookbook