
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为 Apache Jena Fuseki 的 Docker 封装,包含 SeCo 扩展,灵感源自 https://github.com/stain/jena-docker/tree/master/jena-fuseki%E3%80%82
Docker Hub 地址:https://hub.docker.com/r/secoresearch/fuseki/
主要用途:提供基于 TDB 的 RDF 数据存储与查询服务,支持 SPARQL 1.1 端点、文本索引、持久化存储及 SHACL 验证等功能,适用于构建语义数据服务或作为 RDF 数据集的分发载体。
ds 数据集,使用 TDB 存储引擎,集成 Lucene 文本索引tdb:unionDefaultGraph=true,支持默认图查询匹配所有命名图的并集(默认图本身除外)tdbloader、textindexer、tdbstats 等脚本,支持批量加载 RDF 数据http://localhost:3030,管理员密码通过 ADMIN_PASSWORD 环境变量设置tdb:unionDefaultGraph=true:默认图查询匹配所有命名图的并集(注意:存储的默认图不属于此并集,需通过 <urn:x-arq:DefaultGraph> 显式访问)QUERY_TIMEOUT 环境变量调整(单位:毫秒)基础端点(默认启用)
http://localhost:3030/ds/sparql(支持 SELECT/ASK/CONSTRUCT/DESCRIBE)http://localhost:3030/ds/data(支持 RDF 数据读取)可启用端点
通过环境变量启用(详见「环境变量配置」):
http://localhost:3030/ds/update(支持 INSERT/DELETE 操作)http://localhost:3030/ds/data(支持 RDF 数据写入)http://localhost:3030/ds/shacl(支持 SHACL 约束验证)数据加载工具
容器内置 tdbloader、textindexer、tdbstats 脚本,用于将 RDF 数据加载到 TDB 模型。示例可参考 https://github.com/SemanticComputing/congress-legislators/blob/master/Dockerfile%E3%80%82
默认情况下,容器删除后数据会丢失,可通过以下方式实现持久化:
方案 1:卷/绑定挂载(推荐运行时数据更新)
挂载 /fuseki-base/databases 目录至宿主机,适用于需动态更新数据或保持镜像轻量化的场景:
bash# 示例:绑定宿主机 ./fuseki-data 目录到容器数据库目录 docker run ... --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases ...
方案 2:自定义 Dockerfile(推荐静态数据集)
基于本镜像构建新镜像,在构建阶段加载数据,适用于静态、只读数据集分发:
dockerfileFROM secoresearch/fuseki # 复制 RDF 数据到镜像 COPY data.rdf /data/ # 使用 tdbloader 加载数据到 TDB RUN tdbloader --loc /fuseki-base/databases/ds /data/data.rdf
| 环境变量 | 作用 | 取值范围 | 默认值 |
|---|---|---|---|
ADMIN_PASSWORD | 管理员密码(必填) | 字符串 | 无 |
ENABLE_DATA_WRITE | 启用图存储端点写权限 | true/false | false |
ENABLE_UPDATE | 启用 SPARQL 更新端点 | true/false | false |
ENABLE_SHACL | 启用 SHACL 验证端点 | true/false | false |
QUERY_TIMEOUT | 查询超时时间(毫秒) | 正整数 | 60000(60秒) |
USE_SYSTEM_CA_CERTS | 使用系统 CA 证书(用于 HTTPS 访问) | 空值/1(启用) | 空值(禁用) |
bashdocker build --squash -t secoresearch/fuseki .
基础运行命令
bashdocker run --rm -it -p 3030:3030 --name fuseki \ -e ADMIN_PASSWORD=your_secure_password \ -e ENABLE_DATA_WRITE=true \ -e ENABLE_UPDATE=true \ -e QUERY_TIMEOUT=30000 \ --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases \ secoresearch/fuseki
支持通过管理 UI 添加新数据集
bash# 创建本地目录 mkdir fuseki-data fuseki-configuration # 复制默认配置文件并修改(按需启用端点) cp -p assembler.ttl fuseki-configuration/ # 运行容器,挂载数据和配置目录 docker run --rm -it -p 3030:3030 --name fuseki \ -e ADMIN_PASSWORD=your_secure_password \ --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases \ --mount type=bind,source="$(pwd)"/fuseki-configuration,target=/fuseki-base/configuration \ secoresearch/fuseki
Docker Compose 示例
yamlversion: '3' services: fuseki: image: secoresearch/fuseki ports: - "3030:3030" environment: - ADMIN_PASSWORD=your_secure_password - ENABLE_UPDATE=true - QUERY_TIMEOUT=60000 volumes: - ./fuseki-data:/fuseki-base/databases - ./fuseki-configuration:/fuseki-base/configuration restart: unless-stopped
若在 OpenShift 中以非 root 用户运行,需确保数据目录权限:
dockerfile# 在自定义 Dockerfile 中添加(构建阶段) RUN chgrp -R 0 $FUSEKI_BASE \ && chmod -R g+rwX $FUSEKI_BASE
Note:若通过绑定挂载自定义 assembler.ttl,不建议使用环境变量(如 ENABLE_DATA_WRITE)修改端点权限,可能导致文件权限错误。此时应直接编辑 assembler.ttl 配置端点。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务