Docker
Waratah publishes a container image with everything in one place: the query engine, the storage engines, and the web console. One container is one complete server — the default configuration runs the single-process server, so there is nothing to orchestrate for a first deployment.
The image lives on Docker Hub as
docker.io/ashleysommer/waratah:
docker pull docker.io/ashleysommer/waratah:latest
Run it
docker run -d --name waratah \
-p 8080:8080 \
-v waratah-data:/var/lib/waratah \
docker.io/ashleysommer/waratah:latest
| Part | Meaning |
|---|---|
|
Publish the HTTP port. The console is at |
|
Persist the data root — the store, spill files, ingest staging, and
notebook directories all live under it. A named volume (as here)
survives |
|
The image. The command baked into it is
|
Because the server runs in the foreground inside the container, its logs go to Docker:
docker logs -f waratah
Stop and restart without losing data:
docker stop waratah
docker start waratah
Passing extra arguments
Anything you place after the image name becomes arguments to the
waratah binary — and replaces the default command, so repeat the
standalone line and add your flags to it:
docker run -d --name waratah \
-p 8080:8080 \
-v waratah-data:/var/lib/waratah \
docker.io/ashleysommer/waratah:latest \
standalone --http 0.0.0.0:8080 --data-dir /var/lib/waratah \
--load-demo
The flags are the same ones the CLI documents. Common variations:
| Run line addition | Effect |
|---|---|
|
Load the weather/city demo dataset before serving — handy for a first look. |
|
Log SPARQL query text, timings, and client errors; in a container these
go to |
|
Switch the DESCRIBE algorithm ( |
|
Strict SPARQL 1.1 behavior (see Deviations from Spec). |
|
Enable the Jupyter service at |
A different host port needs no flag at all — map it:
docker run -d -p 9090:8080 -v waratah-data:/var/lib/waratah \
docker.io/ashleysommer/waratah:latest
Loading data
The server is already running against the mounted volume, so the container-native path is the console’s Ingest page or the HTTP ingest API (see the Ingest API reference) — both stage files under the data root and load them into the running server.
Beyond one container
The image also exposes 7005, the compute node’s internal gRPC port.
Multi-copy deployments (a cluster of waratah instances, or one
container per process) run several copies of the same image with
command overrides and a shared cluster.toml — see
the developer Docker page for the image’s
process model and internals.