- A RDF Fuseki TDB w/ Java 11 base Container with
no root access
(except usingsudo ...
and you can remove it usingsudo apt-get remove sudo
to protect your Container).
If [ you are looking for such a common requirement as a base Container ]:
Then [ this one may be for you ]
- Need newer or latest openjdk version 17 or above. (It is recommended you git pull the "openkbs/python-nonroot-docker" and rebuild newer image to avoid build error of this Container)
- Dockerfile added built-in system environment variable (previously updated)
- CVE Log4J Vulability (previously updated)
ENV LOG4J_FORMAT_MSG_NO_LOOKUPS=true
- This project leveraged many from Stain's stain/jena-docker GIT project though it's not directly forked.
- OpenJDK Java 11 base image + Non-root User (/home/developer)
- Apache Jena - Triple Store TDB/TDB2, SPARQL/Fuseki.
- Maven + Gradle
- No root setup: using /home/developer
- It has sudo for dev phase usage. You can "sudo apt-get remove sudo" to finalize the product image.
- Note, you should consult Docker security experts in how to secure your Container for your production use!)
- Note that this build need to use the Java version 17 or above.
- It is recommended you git pull the "openkbs/python-nonroot-docker" to the latest and then build the new version before you build this Container.
./build.sh
./run.sh
To use docker-compose,
docker-compose up
To access Web UI:
http://0.0.0.0:13030/
- Login for admin user: see .env file
- build.sh - build local image
- logs.sh - see logs of container
- run.sh - run the container
- shell.sh - shell into the container
- stop.sh - stop the container
Often you might encounter error like no access permission.
- Most likely, the root cause is the mis-alignment of ownerships between host's 'fuseki' (root or ) and the folder mapping to /home/developer/fuseki.
- Makesure you first 'mkdir ./databases' with owner (1001:1001) before you run 'docker-compose up'
- W3C SPARQL 1.1 Update - W3C Recommendation 21 March 2013
- Apache Jena Home
- Apache Jena TDB2 Command Line Tools
- Apache Jena Ontology API
- Apache Jean Inference API
- SPARQL 1.1 Query Language
- SPARQL 1.1 Graph Store HTTP Protocol
- HyperGraphQL Demo
- GraphQL Schema & Service Generator
- DrSnowbird/rdf4j-docker, Apache Jena TDB/TDB2 RDF Server
- DrSnowbird/blazegraph-docker, high-performance RDF Server
- DrSnowbird/json2rdf-docker, converting JSON to RDF
- DrSnowbird/visualRDF, Visualize RDF Graph
- DrSnowbird/SANSA-RDF
- (per TDB document page - do not direct access TDB/TDB2 as multi-concurrent access/update since doing this might corrupt the database). Always use SPARQL HTTP REST API for Query and Update.
- (digested from the TDB/TDB2) A TDB dataset should only be directly accessed from a single JVM at a time otherwise data corruption may occur. From 1.1.0 onwards TDB includes automatic protection against multi-JVM usage which prevents this under most circumstances.
If you wish to share a TDB dataset between multiple applications please use our Fuseki component which provides a SPARQL server that can use TDB for persistent storage and provides the SPARQL protocols for query, update and REST update over HTTP.
HTTP RDF Content negotiation should work from "http://schema.org/" and include all supported formats
- text/turtle (Turtle)
- application/n-quads (Quad)
- application/n-triples (Ntriples)
- application/ld+json (JSON-LD)
- application/xhtml+xml (RDFa)