
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Conformance Test Harness (CTH) Docker镜像用于运行针对Solid规范的一致性测试,验证Solid服务器实现是否符合标准。镜像内置最新测试用例、清单文件和测试主题配置,用户只需提供环境配置和目标服务器信息即可执行测试,生成覆盖度和结果报告。
需创建两个测试用户账户(alice和bob),可注册在任何兼容的Solid身份提供商(IdP)或被测服务器上。
被测服务器需托管一个测试容器,alice用户必须对该容器拥有完全控制权(通过所有权或访问授权)。
CTH依赖四种配置来源(按动态性从低到高排序):
Turtle格式文件,使用EARL和DOAP词汇表描述测试对象及其能力。示例:
turtle<css> a earl:Software, earl:TestSubject ; doap:name "Community Solid Server" ; doap:release <css#test-subject-release> ; doap:developer <https://github.com/solid> ; doap:homepage <https://github.com/solid/community-server> ; doap:description "An open and modular implementation of the Solid specifications."@en ; doap:programming-language "TypeScript" ; solid-test:skip "acp" ; rdfs:comment "Comment on the test subject"@en. <css#test-subject-release> doap:revision "0.9.0" ; doap:created "2021-05-04T00:00:00.000Z"^^xsd:dateTime .
内置测试主题包括:
<css>: Community Solid Server<ess>: Enterprise Solid Server<nss>: Node Solid Server<trinpod>: TrinPodYAML格式,路径为config/application.yaml,用于覆盖默认设置。默认配置包含在Docker镜像中,示例:
yamlsubjects: test-subjects.ttl sources: - https://solidproject.org/ED/protocol - https://github.com/solid-contrib/specification-tests/blob/main/protocol/solid-protocol-test-manifest.ttl - https://github.com/solid-contrib/specification-tests/blob/main/protocol/requirement-comments.ttl - https://solidproject.org/TR/wac - https://github.com/solid-contrib/specification-tests/blob/main/web-access-control/web-access-control-test-manifest.ttl target: https://github.com/solid-contrib/conformance-test-harness/ess mappings: - prefix: https://github.com/solid-contrib/specification-tests/blob/main path: ./data agent: Solid-Conformance-Test-Suite connectTimeout: 5000 readTimeout: 5000 maxThreads: 8 origin: https://tester
通过.env文件提供,包含核心配置、认证详情、日志和其他设置。
核心配置
shell# 用户WebID USERS_ALICE_WEBID= USERS_BOB_WEBID= # 身份提供商(可选) SOLID_IDENTITY_PROVIDER= # 测试容器路径(相对或绝对URL) TEST_CONTAINER= # 资源服务器根路径(可选,用于兼容旧配置) RESOURCE_SERVER_ROOT=
认证方式
1. 客户端凭证
shellUSERS_ALICE_CLIENTID= USERS_ALICE_CLIENTSECRET= USERS_ALICE_IDP= USERS_BOB_CLIENTID= USERS_BOB_CLIENTSECRET= USERS_BOB_IDP=
2. 刷新令牌
shellUSERS_ALICE_REFRESHTOKEN= USERS_ALICE_CLIENTID= USERS_ALICE_CLIENTSECRET= USERS_ALICE_IDP= USERS_BOB_REFRESHTOKEN= USERS_BOB_CLIENTID= USERS_BOB_CLIENTSECRET= USERS_BOB_IDP=
3. 会话登录
shellLOGIN_ENDPOINT= USERS_ALICE_USERNAME= USERS_ALICE_PASSWORD= USERS_ALICE_IDP= USERS_BOB_USERNAME= USERS_BOB_PASSWORD= USERS_BOB_IDP= ORIGIN=
4. 本地用户注册
shellUSER_REGISTRATION_ENDPOINT= USERS_ALICE_USERNAME= USERS_ALICE_PASSWORD= USERS_ALICE_IDP= USERS_BOB_USERNAME= USERS_BOB_PASSWORD= USERS_BOB_IDP= ORIGIN=
日志配置
shell# 启用HTTP交互日志 quarkus.log.category."com.intuit.karate".level=DEBUG quarkus.log.category."org.solid.testharness.http.Client".level=DEBUG quarkus.log.category."org.solid.testharness.http.AuthManager".level=DEBUG # JSON格式日志 QUARKUS_LOG_JSON_CONSOLE_ENABLE=true
其他配置
shell# 并行测试线程数 MAXTHREADS=2 # 允许自签名证书 ALLOW_SELF_SIGNED_CERTS=true # 已知失败测试列表路径 TOLERABLEFAILURES=filepath.txt
usage: run --coverage 仅生成覆盖度报告 -f,--filter <arg> 功能过滤器 -h,--help 显示帮助信息 --ignore-failures 即使有失败也返回成功 -o,--output <arg> 输出目录 -s,--source <arg> 测试源URL或路径 --skip-reports 跳过报告生成 --skip-teardown 跳过清理步骤 --status <arg> 要运行的测试状态 --subjects <arg> 测试主题配置文件(Turtle)URL或路径 -t,--target <arg> 目标服务器 --tolerable-failures <arg> 已知失败测试列表路径
/app/harness: 可执行JAR文件/app/config: 默认application.yaml配置/data: specification-tests仓库内容/reports: 报告输出目录.env文件(以ESS为例):shellquarkus.log.category."com.intuit.karate".level=DEBUG SOLID_IDENTITY_PROVIDER=https://server/idp/ USERS_ALICE_WEBID=https://server/alice/profile/card#me USERS_ALICE_USERNAME=alice@example.org USERS_ALICE_PASSWORD=securepassword USERS_BOB_WEBID=https://server/bob/profile/card#me USERS_BOB_USERNAME=bob@example.org USERS_BOB_PASSWORD=securepassword USER_REGISTRATION_ENDPOINT=https://server/idp/register/ RESOURCE_SERVER_ROOT=https://server TEST_CONTAINER=/alice/
shellmkdir -p reports/ess docker run -i --rm \ -v "$(pwd)"/reports/ess:/reports \ --env-file=ess.env \ solidproject/conformance-test-harness \ --output=/reports \ --target=https://github.com/solid-contrib/conformance-test-harness/ess
从https://github.com/solid-contrib/specification-tests/blob/main/run.sh%E4%B8%8B%E8%BD%BD%60run.sh%60%E8%84%9A%E6%9C%AC%EF%BC%8C%E5%88%9B%E5%BB%BA%60server.env%60%E6%96%87%E4%BB%B6%E5%90%8E%E6%89%A7%E8%A1%8C%EF%BC%9A
shell# 运行内置测试 ./run.sh server # 运行本地测试 ./run.sh -d . server # 使用本地CTH构建 ./run.sh -l server
包含测试结果摘要,示例:
json{ "resultDate": "2021-06-17T11:12:31.000Z", "elapsedTime": 7552.0, "mustFeatures": {"passed": 0, "failed": 0}, "mustScenarios": {"passed": 0, "failed": 0}, "features": { "MUST": {"passed": 0, "failed": 0}, "MUSTNOT": {"passed": 0, "failed": 0}, "SHOULD": {"passed": 0, "failed": 0}, "SHOULDNOT": {"passed": 0, "failed": 0}, "MAY": {"passed": 0, "failed": 0} }, "scenarios": { "MUST": {"passed": 0, "failed": 0, "cantTell": 0, "untested": 0, "inapplicable": 0}, "MUSTNOT": {"passed": 0, "failed": 0, "cantTell": 0, "untested": 0, "inapplicable": 0}, "SHOULD": {"passed": 0, "failed": 0, "cantTell": 0, "untested": 0, "inapplicable": 0}, "SHOULDNOT": {"passed": 0, "failed": 0, "cantTell": 0, "untested": 0, "inapplicable": 0}, "MAY": {"passed": 0, "failed": 0, "cantTell": 0, "untested": 0, "inapplicable": 0} }, "totalTime": 7552.0 }
| 报告类型 | 路径 |
|---|---|
| 覆盖度报告(HTML+RDFa) | coverage.html |
| 结果报告(HTML+RDFa) | report.html |
| 结果报告(Turtle) | report.ttl |
报告包含规范测试摘要、测试用例结果、详细日志和结果统计,可用于评估服务器对Solid规范的符合程度。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务