Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stain/jena-docker

Docker image for Apache Jena riot
https://github.com/stain/jena-docker

Last synced: about 2 months ago
JSON representation

Docker image for Apache Jena riot

Awesome Lists containing this project

README

        

# Docker files for Jena

[![Build](https://github.com/stain/jena-docker/actions/workflows/main.yml/badge.svg)](https://github.com/stain/jena-docker/actions/workflows/main.yml)

This repository hosts [Docker](https://www.docker.com/) recipes for distributing
[Apache Jena](http://jena.apache.org/).

Two Docker images are available:

- [jena](jena/) - `riot` command line and friends, for use on the command line
- [fuseki](fuseki/) - the [Fuseki](http://jena.apache.org/documentation/fuseki2/) server with SPARQL endpoint and web interface

These are available from GitHub as:

- [ghcr.io/stain/jena](https://github.com/users/stain/packages/container/package/jena)
- [ghcr.io/stain/jena-fuseki](https://github.com/users/stain/packages/container/package/jena-fuseki)

..and from the Docker Hub as:

- [stain/jena](https://hub.docker.com/r/stain/jena/)
- [stain/jena-fuseki](https://hub.docker.com/r/stain/jena-fuseki/)

Note that although these Docker images are based on the official Apache Jena releases
and do not alter them in any way, they do **not** constitute official releases
from Apache Software Foundation, and are probably not the latest version.

## Building

```shell
docker build -t jena jena
docker build -t jena-fuseki jena-fuseki
```

## Dockerfile overview

The `Dockerfile`s for both images use the official [eclipse-temurin:21-jre-alpine](https://hub.docker.com/r/_/eclipse-temurin/) base image, which is based on the [`Alpine`](https://hub.docker.com/_/alpine/):3.19.1 image; this clocks in at about 62 MB.

The `ENV` variables like `JENA_VERSION` and `FUSEKI_VERSION` determines which version of Jena and Fuseki are downloaded. Updating the version also requires updating the `JENA_SHA512` and `FUSEKI_SHA512` variables, which values should match the official Jena download `.tar.gz.sha512` hashes, as approved in their release `[VOTE]` emails.

The `ASF_MIRROR` use that redirect to a local mirror, with a fallback to the `ASF_ARCHIVE` for older versions.

To minimize layer size, there's a single `RUN` with `curl`, `sha512sum`, `tar zxf` and `mv` - thus the temporary files during download and extraction are not part of the final image.

Some files from the Apache Jena distributions are stripped, e.g. javadocs and the `fuseki.war` file.

The Fuseki image includes some [helper scripts](jena-fuseki/load.sh) to do [tdb loading](https://jena.apache.org/documentation/tdb/commands.html) using `fuseki-server.jar`.
In addition, Fuseki has a [`docker-entrypoint.sh`](https://github.com/stain/jena-docker/blob/master/jena-fuseki/docker-entrypoint.sh) that populates `shiro.ini` with the password provided as `-e ADMIN_PASSWORD` to Docker, or with a new randomly generated password that is printed the first time.

## Usage

For usage, see README for each of the Docker images:

* [jena/README.md](jena/README.md)
* [jena-fuseki/README.md](jena-fuseki/README.md)