diff --git a/.github/workflows/container_image.yml b/.github/workflows/container_image.yml new file mode 100644 index 00000000..f3079905 --- /dev/null +++ b/.github/workflows/container_image.yml @@ -0,0 +1,39 @@ +name: Build Docker image + +on: [push] + +jobs: + docker: + runs-on: ubuntu-22.04 + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # - name: Login to DockerHub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ghcr.io/dbpedia/databus + - name: Build and push for many architectures + id: docker_build_tagged + uses: docker/build-push-action@v4 + with: + push: ${{ github.event_name != 'pull_request' }} + platforms: 'linux/amd64,linux/arm64' + cache-from: type=gha + cache-to: type=gha,mode=max + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile index 91f46862..c11a15f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,22 @@ -FROM ubuntu:18.04 -RUN apt-get update -RUN apt-get install -y curl +FROM ubuntu:22.04 -# Set up node.js: -RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get install -y nodejs && \ - node -v && \ - npm -v - -# Set up Caddy as proxy server: -RUN apt-get install -y debian-keyring debian-archive-keyring apt-transport-https && \ +# Install node.js, Caddy as proxy server, and java. +RUN apt-get update && \ + apt-get -y install curl debian-keyring debian-archive-keyring apt-transport-https && \ + curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && \ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list && \ apt-get update && \ - apt-get install caddy - -RUN apt-get -y install ca-certificates-java -RUN apt-get -y install openjdk-17-jdk openjdk-17-jre -RUN java -version + apt-get -y install \ + nodejs \ + caddy \ + ca-certificates-java \ + openjdk-17-jdk \ + openjdk-17-jre && \ + rm -rf /var/lib/apt/lists/* && \ + node -v && \ + npm -v && \ + java -version # Disable the proxy server by default: ENV DATABUS_PROXY_SERVER_ENABLE=false diff --git a/README.md b/README.md index 2df12f9e..e28c19f0 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ https://raw.githubusercontent.com/dbpedia/databus/68f976e29e2db15472f1b664a6fd58 ℹ️ Explanation and variants: * Databus considers "text" as data. Data is any URI that can be accessed to retrieve bytecode. Text is normally encoded in Unicode UTF-8 bytecode. -* Data can be kept private, either by Firewall, VPN, HTTP Basic Authentication (`https://user:pass@example.com`), local IPs (`127.0.0.1' or '192'), using `file://`. +* Data can be kept private, either by Firewall, VPN, HTTP Basic Authentication (`https://user:pass@example.com`), local IPs ('127.0.0.1' or '192.168.x.x'), using `file://`. * In the image above, we listed some free public storage options. Note that Databus comes with a built-in [WebDav](https://en.wikipedia.org/wiki/WebDAV) to store your data. ## Running the Server diff --git a/devenv/README.md b/devenv/README.md index b2d65e83..c439a9ce 100644 --- a/devenv/README.md +++ b/devenv/README.md @@ -57,7 +57,7 @@ The `build-docker-image.sh` script will install all npm dependencies for the ser ### Starting the Databus Environment -Go to the root directory of the repository and start the database and lookup search containers +Go to the `devenv` directory of the repository and start the database and lookup search containers ``` make env-build diff --git a/devenv/docker-compose.yml b/devenv/docker-compose.yml index 8e468715..9ba4c339 100644 --- a/devenv/docker-compose.yml +++ b/devenv/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.0" services: gstore: - image: gstore-dev #dbpedia/gstore:dev + image: dbpedia/gstore:dev #dbpedia/gstore:dev container_name: devenv_gstore environment: STORAGE_USER: "dba" diff --git a/docker-compose.yml b/docker-compose.yml index baa3b7e9..70d9d0bd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.0" services: databus: - image: "dbpedia/databus" + image: "docker.io/dbpedia/databus" ports: - 3000:3000 # HTTP: Databus web UI # - 80:80 # ** uncomment if proxy enabled only** HTTP port of included proxy (caddy) necessary for Auto-HTTPS via ACME and HTTP->HTTPS redirect @@ -28,7 +28,7 @@ services: - ./data/tls/:/tls:ro # path for TLS (HTTPS) certs when using integrated caddy proxy - ./data/tls/caddy:/root/.local/share/caddy/ # path for caddy settings esp. automatic TLS certificates gstore: - image: "dbpedia/gstore" + image: "docker.io/dbpedia/gstore" environment: STORAGE_USER: ${VIRTUOSO_USER} STORAGE_PASS: ${VIRTUOSO_PASSWORD} @@ -39,7 +39,7 @@ services: - ./data/gstore/repo:/gstore/git - ./data/gstore/logs:/gstore/logs virtuoso: - image: "openlink/virtuoso-opensource-7" + image: "docker.io/openlink/virtuoso-opensource-7" environment: DBA_PASSWORD: ${VIRTUOSO_PASSWORD} SPARQL_UPDATE: "true" diff --git a/public/templates/footer.ejs b/public/templates/footer.ejs index 563e8884..a34b0efb 100644 --- a/public/templates/footer.ejs +++ b/public/templates/footer.ejs @@ -8,7 +8,11 @@
Global and Unified Access to Knowledge Graphs
© Copyright 2023 by DBpedia. All Rights Reserved.