配置文件
Rack 使用 ~/.rackrc 管理 Registry 源地址与访问凭证, 该配置对当前用户的所有项目生效。
配置结构
.rackrc 是一个 JSON 文件, 目前支持以下顶级字段:
json
{
"registries": {
"@rack": "https://registry.rackjs.com"
}
}registries
以命名空间为键, 为每个 Registry 声明访问入口。值可以是字符串或对象:
- 字符串: 仅声明 Registry URL。
- 对象: 至少包含
url, 可选headers(自定义请求头) 和token(Bearer 令牌)。
json
{
"registries": {
"@rack": "https://registry.rackjs.com",
"@company": {
"url": "https://registry.company.com",
"headers": {
"X-API-Version": "v2"
},
"token": "your-token-here"
}
}
}
token字段在配置文件中独立保存, CLI 在解析配置或发起请求时会临时展开为Authorization: Bearer <token>请求头, 不会写回headers。如果同时在headers中显式声明了Authorization, 则会被token展开后的值覆盖。
常见场景
- 引入企业内部 Registry: 为
@company或其他私有命名空间声明自托管地址。 - 设置访问令牌: 直接填
token字段, 或通过自定义请求头携带 PAT、API Key。 - 定制请求: 添加
X-前缀头以控制审计、版本或多租户路由。
使用 CLI 管理
推荐使用 rk config 命令维护 .rackrc, 避免手动编辑造成格式错误。
基本命令
- 查看全部配置:
rk config list(别名:ls) - 查询指定命名空间:
rk config get @namespace [--json] - 新增或更新源:
rk config set @namespace --url <url> [--token <token>] [--header "Key: Value"] - 移除源:
rk config remove @namespace(别名:rm, 使用-f跳过确认)
高级功能
- 增量更新:
set会与现有条目合并, 不会清空未提供的字段;--header在已有 headers 上叠加同名键覆盖。 - Token 简化:
--token在配置文件中保存为token字段, 在显示与发起请求时统一展开为Authorization: Bearer <token>请求头。 - 命名空间保护: 默认的
@rack命名空间禁止删除;set/get/remove仅校验命名空间是否以@开头, 完整正则在rk init/rk add解析标识符时再校验。
当前版本的
rk config get/list不会对 Token 或敏感请求头做掩码处理;rk config set也不会对--url做连通性探测。如需校验源是否可达, 请运行rk doctor。
手动编辑与校验
如果需要直接修改 .rackrc, 建议流程如下:
bash
# 打开文件
vi ~/.rackrc
# 保存后快速检查
rk config list- 保持标准 JSON, 不支持注释。
- 提前创建目录并限制权限, 避免泄露访问令牌。
- CI 环境可通过写入临时
.rackrc后执行rk config list校验配置是否生效。

