docker部署npm私有仓库verdaccio
官方文档: http://verdaccio.org/docs/en/docker.html
git地址:https://github.com/verdaccio/verdaccio
hub地址:https://hub.docker.com/r/verdaccio/verdaccio
使用私有仓库缓存效率对比
- 测试环境:公司内网
npm install
npm install --registry http://私仓
标记版本
主要版本
docker pull verdaccio/verdaccio:4
次要版本
docker pull verdaccio/verdaccio:4.0
补丁版本
docker pull verdaccio/verdaccio:4.0.0
更多tag,请访问hub地址:Docker Hub Verdaccio
使用Docker运行Verdaccio
运行容器
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
持久化挂载
docker run -it --rm --name verdaccio \
-p 4873:4873 \
-v $PATH/conf:/verdaccio/conf \
-v $PATH/storage:/verdaccio/storage \
-v $PATH/plugins:/verdaccio/plugins \
verdaccio/verdaccio
注意:Verdaccio在容器内以非root用户身份(uid = 10001)运行,如果您使用bind mount覆盖默认值,则需要确保将mount目录分配给正确的用户。在上面的示例中,您需要运行,sudo chown -R 10001:65533 /opt/verdaccio否则将在运行时收到权限错误。 建议使用docker卷而不是使用绑定安装。
- 环境变量
属性 | 默认 | 描述 |
---|---|---|
VERDACCIO_APPDIR | /opt/verdaccio | docker工作目录 |
VERDACCIO_USER_NAME | verdaccion | 系统用户 |
VERDACCIO_USER_UID | 10001 | 用于应用文件夹权限的用户标识 |
VERDACCIO_PORT | 4873 | verdaccio端口 |
VERDACCIO_PROTOCOL | http | 默认的http协议 |
Docker自定义端口配置
使用环境变量 VERDACCIO_PORT
将会忽略conf/config.yaml中的配置,改变容器内服务的监听端口
docker run -it --rm --name verdaccio \
-e "VERDACCIO_PORT=8080" -p 8080:8080 \
verdaccio/verdaccio
Docker中使用HTTPS
可以配置verdaccio将要监听的协议,类似于端口配置。PROTOCOL在config.yaml中指定证书后,必须将环境变量的默认值(“ http”)覆盖为“ https”。
docker run -it --rm --name verdaccio \
--env "VERDACCIO_PROTOCOL=https" -p 4873:4873
verdaccio/verdaccio
DockerCompose部署
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