Verdaccio是一个轻量级的私有npm仓库管理工具,使用Docker部署可以简化安装和配置过程。以下是详细的实现步骤:
确保已安装: - Docker - Docker Compose (可选)
docker run -it --rm --name verdaccio \
-p 4873:4873 \
-v verdaccio-storage:/verdaccio/storage \
-v verdaccio-conf:/verdaccio/conf \
verdaccio/verdaccio
创建docker-compose.yml
文件:
version: '3'
services:
verdaccio:
image: verdaccio/verdaccio
container_name: verdaccio
ports:
- "4873:4873"
volumes:
- ./storage:/verdaccio/storage
- ./config:/verdaccio/conf
- ./plugins:/verdaccio/plugins
environment:
- VERDACCIO_PORT=4873
然后运行:
docker-compose up -d
默认配置位于容器内的/verdaccio/conf/config.yaml
,可以通过挂载卷来自定义:
mkdir -p verdaccio/config
config.yaml
:storage: /verdaccio/storage
plugins: /verdaccio/plugins
web:
title: My Private NPM Registry
# comment out to disable gravatar support
# gravatar: false
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
# max_users: 1000
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $authenticated
publish: $authenticated
proxy: npmjs
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
access: $authenticated
publish: $authenticated
proxy: npmjs
server:
keepAliveTimeout: 60
middlewares:
audit:
enabled: true
logs: { type: stdout, format: pretty, level: http }
npm set registry http://<your-server-ip>:4873/
或临时使用:
npm --registry http://<your-server-ip>:4873/ install <package>
npm adduser --registry http://<your-server-ip>:4873/
npm publish --registry http://<your-server-ip>:4873/
config.yaml
:server:
keepAliveTimeout: 60
ssl:
key: /verdaccio/conf/key.pem
cert: /verdaccio/conf/cert.pem
ca: /verdaccio/conf/ca.pem
docker run -it --rm --name verdaccio \
-p 4873:4873 \
-v ./config.yaml:/verdaccio/conf/config.yaml \
-v ./key.pem:/verdaccio/conf/key.pem \
-v ./cert.pem:/verdaccio/conf/cert.pem \
-v ./ca.pem:/verdaccio/conf/ca.pem \
-v ./storage:/verdaccio/storage \
verdaccio/verdaccio
备份挂载的storage和config目录即可。
docker pull verdaccio/verdaccio:latest
docker-compose down
docker-compose up -d
Q: 无法访问4873端口 A: 检查防火墙设置,确保端口已开放
Q: 发布包时权限不足 A: 确保已登录且有足够权限,检查配置文件中的access设置
Q: 存储空间不足 A: 可以挂载更大的存储卷,或配置外部存储
通过以上步骤,您应该能够成功使用Docker部署Verdaccio并搭建私有npm仓库。根据实际需求调整配置即可。