npm ERR! 500 Internal Server Error - POST http://192.168.150.105:4873/-/npm/v1/user
导致问题原因:
copy了一份verdaccio文件,然后config.yaml中直接使用的是verdaccio_new,然后就报500
查看老的verdaccio配置权限
查看verdaccio_new配置权限
解决办法
verdaccio 容器中创建的用户是verdaccio,无法写入主机 root 用户的文件,容器内 verdaccio 使用的 uid 为 10001,gid 为 65533,可以在主机修改权限
sudo chown -R 10001:65533 storage
sudo chown 10001:65533 htpasswd
config.yaml挂载到原先老的verdaccio目录就行,或者直接修改权限
config.yaml文件
storage: ../storage
# 存放所有插件的目录
plugins: ../plugins
web:
# 网站Title
title: xxxx研发中心私服
# 禁用Gravatar头像
# gravatar: false
# 排序方式 asc|desc
# sort_packages: asc
# 是否启用暗黑模式
# darkMode: true
# logo地址
# logo: http://somedomain/somelogo.png
# favicon地址
# favicon: http://somedomain/favicon.ico | /path/favicon.ico
# i18n翻译配置
# i18n:
# 可用列表见:https://github.com/verdaccio/ui/tree/master/i18n/translations
# web: en-US
publish:
allow_offline: true
auth:
htpasswd:
file: ./htpasswd
# 最大注册用户数,默认为 "+inf".
# 可用通过设置为-1禁止注册
# max_users: 1000
# 上游npm库,这里可用设置为淘宝
uplinks:
taobao:
url: https://registry.npm.taobao.org
timeout: 3000ms
yarnpkg:
url: https://registry.yarnpkg.com/
timeout: 6000ms
npmjs:
url: https://registry.npmjs.org/
timeout: 6000ms
local:
url: http://10.100.218.67:4873/
timeout: 6000ms
packages:
# 作用域包
'@*/*':
# 允许所有人访问
access: $all
# 注册用户可访问
publish: username admin
# 注册用户可访问
unpublish: username admin
proxy: taobao yarnpkg npmjs local
'**':
# 默认情况下所有用户 (包括未授权用户) 都可以查看和发布任意包
# 你可以指定 用户名/分组名 (取决于你使用什么授权插件,默认的授权插件是内置的 htpasswd)
# 访问权限有三个关键词: "$all", "$anonymous", "$authenticated"
# $all 表示不限制,任何人可访问;
# $anonymous 表示未注册用户可访问;
# $authenticated 表示只有注册用户可访问
access: $all
# 允许所有注册用户发布/撤销已发布的软件包
# (注意:默认情况下任何人都可以注册)
publish: username admin
unpublish: username admin
# 如果私有包服务不可用在本地,则会代理请求到'npmjs'
proxy: npmjs
# 您可以指定传入连接的HTTP /1.1服务器保持活动超时(以秒为单位)。
# 值为0会使http服务器的行为类似于8.0.0之前的Node.js版本,后者没有保持活动超时。
# 解决方法:通过给定的配置可以解决以下问题
server:
keepAliveTimeout: 60
# 中间件
middlewares:
audit:
enabled: true
# 日志设置
logs: { type: stdout, format: pretty, level: http }
max_body_size: 100mb # 设置最大包体积
# 开放远程访问,允许所有IP
listen:
- 10.100.218.67:4873