
ld4p/sinopia_api本Docker镜像提供Sinopia私有npm仓库的API服务,用于快速搭建本地私有npm仓库,实现npm包的全生命周期管理。通过该镜像可便捷部署支持包发布、存储、检索的API接口,满足企业或团队对私有npm包的安全管理需求。
通过以下命令快速启动Sinopia API服务(默认端口4873):
bashdocker run -d -p 4873:4873 --name sinopia-api sinopia-api:latest
为避免容器重启导致数据丢失,建议挂载本地目录持久化存储配置与包数据:
bashdocker run -d -p 4873:4873 \ -v /host/path/storage:/app/storage \ -v /host/path/config:/app/config \ -v /host/path/logs:/app/logs \ --name sinopia-api sinopia-api:latest
支持通过环境变量自定义服务参数,常用配置如下:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
NODE_ENV | 运行环境(development/production) | production |
PORT | API服务监听端口 | 4873 |
STORAGE_PATH | 包存储目录路径 | /app/storage |
CONFIG_FILE | 配置文件路径 | /app/config/config.yaml |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
MAX_STORAGE | 最大存储容量(MB) | *** |
核心配置通过挂载的config.yaml文件调整,关键配置项示例:
yaml# 存储配置 storage: type: file # 支持file/mongodb等存储类型 path: ./storage # 容器内存储路径 # 用户认证配置 auth: htpasswd: file: ./htpasswd # 存储用户凭证的文件路径 max_users: -1 # -1表示不限制用户注册 # 上游仓库配置 uplinks: npmjs: url: [***] # 公共npm仓库地址 # 包权限配置 packages: '@internal/*': # 内部作用域包 access: $authenticated # 访问需认证 publish: admin # 仅管理员可发布 '*': # 其他包 access: $anonymous # ***可访问 publish: $authenticated # 认证用户可发布 proxy: npmjs # 代理至公共仓库
配置npm客户端:
bashnpm set registry http://localhost:4873
用户注册与登录:
bashnpm adduser --registry http://localhost:4873 # 注册用户 npm login --registry http://localhost:4873 # 用户登录
包发布与安装:
bashnpm publish # 发布当前项目包至私有仓库 npm install <package-name> # 从私有仓库安装包
storage目录数据,防止数据丢失npm adduser创建管理员账户,并配置权限策略manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务