Merge pull request #41 from maxlath/docker

Adds docker-oxigraph
pull/42/head
Thomas Tanon 4 years ago committed by GitHub
commit 44c9a71820
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      README.md
  2. 65
      docker/README.md
  3. 11
      docker/publish_docker_images.sh
  4. 13
      server/Dockerfile
  5. 13
      wikibase/Dockerfile

@ -33,6 +33,8 @@ You need to have [a recent stable version of Rust and Cargo installed](https://w
If it's done, executing `cargo build --release` in the root directory of this repository should compile the full server after having downloaded its dependencies.
It will create a fat binary in `target/release/oxigraph_server`.
Alternatively, you can use the [Docker image](./docker#readme).
### Usage
Run `./oxigraph_server` to start the server. It listen by default on `localhost:7878`.
@ -60,6 +62,8 @@ You need to have [a recent stable version of Rust and Cargo installed](https://w
If it's done, executing `cargo build --release` in the root directory of this repository should compile the full server after having downloaded its dependencies.
It will create a fat binary in `target/release/oxigraph_wikibase`.
Alternatively, you can use the [Docker image](./docker#readme).
### Usage
To start a server that is synchronized with [test.wikidata.org](https://test.wikidata.org) you should run:

@ -0,0 +1,65 @@
# docker-oxigraph
[Oxigraph](https://github.com/oxigraph/oxigraph) in a [Docker container](https://www.docker.com/resources/what-container).
[![DockerHub Badge Oxigraph](https://dockeri.co/image/oxigraph/oxigraph)](https://hub.docker.com/r/oxigraph/oxigraph/)
[![DockerHub Badge Oxigraph-Wikibase](https://dockeri.co/image/oxigraph/oxigraph-wikibase)](https://hub.docker.com/r/oxigraph/oxigraph-wikibase/)
## Summary
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Display help menu](#display-help-menu)
- [Run the web server](#run-the-web-server)
- [Run the web server for Wikibase](#run-the-web-server-for-wikibase)
- [Build local image](#build-local-image)
- [server image](#server-image)
- [Wikibase server image](#wikibase-server-image)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Display the help menu
```sh
docker run --rm oxigraph/oxigraph --help
```
## Run the web server
Expose the server on port `7878` of the host machine, and save data on the local `./data` folder
```sh
docker run --init --rm -v $PWD/data:/data -p 7878:7878 oxigraph/oxigraph -b 0.0.0.0:7878 -f /data
```
You can then access it from your machine on port `7878`:
```sh
# Open the GUI in a browser
firefox http://localhost:7878
# Post some data
curl http://localhost:7878 -H 'Content-Type: application/x-turtle' -d@./data.ttl
# Make a query
curl -H 'Accept: application/sparql-results+json' 'http://localhost:7878/query?query=SELECT%20*%20%7B%20%3Fs%20%3Fp%20%3Fo%20%7D%20LIMIT%2010'
```
## Run the web server for Wikibase
```sh
docker run --init --rm -v $PWD/wikibase_data:/wikibase_data -p 7878:7878 oxigraph/oxigraph-wikibase -b 0.0.0.0:7878 -f /wikibase_data --mediawiki-api http://some.wikibase.instance/w/api.php --mediawiki-base-url http://some.wikibase.instance/wiki/
```
:warning: the Wikibase instance needs to be accessible from within the container. The clean way to do that could be to have both your wikibase and oxigraph in the same [`docker-compose.yml`](https://docs.docker.com/compose/).
## Build local image
### server image
```sh
# Build with no build context, just the Dockerfile
cat Dockerfile | docker build -t oxigraph -
```
### Wikibase server image
```sh
# Same, simply replacing the entrypoint
cat Dockerfile | sed s/oxigraph_server/oxigraph_wikibase/ | docker build -t oxigraph-wikibase -
```

@ -0,0 +1,11 @@
#!/usr/bin/env bash
if [[ -z ./Dockerfile ]] ; then
echo 'this script should be run the docker directory'
exit 1
fi
cat server/Dockerfile | docker build -t oxigraph/oxigraph -
cat wikibase/Dockerfile | docker build -t oxigraph/oxigraph-wikibase -
docker push oxigraph/oxigraph:latest
docker push oxigraph/oxigraph-wikibase:latest

@ -0,0 +1,13 @@
FROM rust:1-buster as builder
RUN apt-get update && \
apt-get install clang -y && \
git clone https://github.com/oxigraph/oxigraph --depth 1 && \
cd oxigraph && \
cargo build --release
FROM debian:buster-slim
COPY --from=builder /oxigraph/target/release/oxigraph_server /usr/local/bin/oxigraph_server
ENTRYPOINT [ "/usr/local/bin/oxigraph_server" ]

@ -0,0 +1,13 @@
FROM rust:1-buster as builder
RUN apt-get update && \
apt-get install clang -y && \
git clone https://github.com/oxigraph/oxigraph --depth 1 && \
cd oxigraph && \
cargo build --release
FROM debian:buster-slim
COPY --from=builder /oxigraph/target/release/oxigraph_wikibase /usr/local/bin/oxigraph_wikibase
ENTRYPOINT [ "/usr/local/bin/oxigraph_wikibase" ]
Loading…
Cancel
Save