本镜像为 Apache Jena Fuseki 的 Docker 封装,包含 SeCo 扩展,灵感源自 stain/jena-fuseki。
Docker Hub 地址: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 模型。示例可参考 congress-legislators 数据集的 Dockerfile。
默认情况下,容器删除后数据会丢失,可通过以下方式实现持久化:
挂载 /fuseki-base/databases 目录至宿主机,适用于需动态更新数据或保持镜像轻量化的场景:
bash# 示例:绑定宿主机 ./fuseki-data 目录到容器数据库目录 docker run ... --mount type=bind,source="$(pwd)"/fuseki-data,target=/fuseki-base/databases ...
基于本镜像构建新镜像,在构建阶段加载数据,适用于静态、只读数据集分发:
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
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
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 配置端点。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429