
ACMS API是一个JSON API服务,用于从Git仓库提供JSON文件内容。该服务要求仓库中的所有文件均为带.json扩展名的JSON文件,支持通过API接口获取、更新和删除仓库中的JSON内容,并提供变量替换功能。
服务使用以下环境变量进行配置:
REPO_URI (必填):Git仓库的URISIGNATURE_MAIL (可选):用于生成提交的电子邮件地址REPO_TOKEN (可选):访问私有仓库的令牌ACMS_API_VAR_* (可选):用于内容中变量替换的环境变量列表(详见"变量替换")服务在提供和写入内容时会替换变量。所有变量需为前缀为ACMS_API_VAR_的环境变量。例如:
bashexport ACMS_API_VAR_MY_FANCY_VARIABLE="value"
如果内容中出现变量,将被替换为指定值。写入仓库时,值也会被替换为变量名。
示例:
内容: "Hello ${properGreeting}." ACMS_API_VAR_PROPER_GREETING: "World" 提供内容: "Hello World."
GET /:version返回指定版本的仓库内容,作为单个JSON对象。版本可以是Git提交哈希或引用。响应头Git-Commit-Hash包含Git提交哈希。
返回对象包含仓库根目录中每个文件的内容(属性名为文件名,不带扩展名),目录则包含具有相同结构的子对象。
示例:
若仓库包含file1.json、file2.json、directory/fileA.json和directory/subDirectory/fileB.json,响应结构如下:
json5// GET <url>/master { "directory": { "fileA": { "foo": "bar" }, "subDirectory": { "fileB": { "foo": "bar" } } }, "file1": { "min": 1, "max": 10 }, "file2": [ "item1", "item2", "item3" ] }
GET /:version/path可在前面路由基础上添加额外路径,以获取特定数据。
示例:
json5// GET <url>/master/directory/fileA { "foo": "bar" }
GET /:version/path?listFiles=truelistFiles参数返回平面结构,包含path及其子目录中的所有文件,文件路径为键,文件内容为值。
示例:
json5// GET <url>/master/directory?listFiles { "file1": { "foo": "bar" }, "file2": [1, 2, 3], "subDirectory/file3": "foo" }
PUT /:version/path使用PUT请求替换目录或单个文件的内容。请求体应包含所有文件和子目录的JSON数据或单个文件数据。建议工作流:使用GET /:version/path查询路径,修改数据后通过PUT /:parentVersion/path发送回完整数据。
将创建新的Git提交并在必要时合并。响应头Git-Commit-Hash包含新(合并)提交的哈希。合并失败将返回错误。
示例
替换目录内所有内容的请求体:
json5// PUT <url>/master/directory { "files": { "fileA": { "foo": "bar" }, "subDirectory/fileB": { "foo": "bar" } } }
仅替换单个文件的请求体:
json5// PUT <url>/master/file1 { "fileContent": { "min": 10, "max": 30 } }
额外属性:
author:提交作者updateBranch:应更新到新提交的分支(默认:"master")DELETE /:version/path使用DELETE请求删除目录或单个文件。请求体应包含JSON数据,包含file或directory属性。
将创建新的Git提交并在必要时合并。响应头Git-Commit-Hash包含新(合并)提交的哈希。合并失败将返回错误。
示例
删除单个文件:
json5// DELETE <url>/master/parentDirectory { "file": "fileToDelete" }
删除目录:
json5// DELETE <url>/master/parentDirectory { "directory": "directoryToDelete" }
额外属性:
author:提交作者updateBranch:应更新到新提交的分支(默认:"master")bashnpm install REPO_URI=<仓库URL> npm run watch
该服务设计用于通过Dokku部署,也可能适用于Heroku及其他兼容平台。
服务包含Dockerfile,可直接通过Docker启动。
Docker run示例:
bashdocker run -d \ -e REPO_URI=https://github.com/yourusername/your-repo.git \ -e ACMS_API_VAR_MY_VAR=value \ -p 3000:3000 \ --name acms-api \ acms-api-image
在Mac OS上,若使用Node 16运行npm install时遇到错误:error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?,尝试:
bashexport CXXFLAGS="--std=c++17" && npm install
(参见node-gyp https://github.com/nodejs/node-gyp/issues/2387%EF%BC%89
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务