Skip to content

feat(docker): local dev stack built from source#218

Merged
BlackDark merged 2 commits into
masterfrom
feat/docker-local-stack
Jun 4, 2026
Merged

feat(docker): local dev stack built from source#218
BlackDark merged 2 commits into
masterfrom
feat/docker-local-stack

Conversation

@BlackDark
Copy link
Copy Markdown
Member

@BlackDark BlackDark commented Jun 4, 2026

Summary

Replaces the broken wget-based root Dockerfile with a source-built stack documented in ADR 0001.

  • Merged image (docker/Dockerfile): Maven builds OWL2VOWL from a sibling ../OWL2VOWL checkout (Compose additional_contexts), Node 12 builds the WebVOWL UI, Tomcat 9 serves both under ROOT so /convert and /serverTimeStamp stay same-origin.
  • Compose: docker-compose.yml for the full stack; docker-compose.frontend.yml for UI-only. Volume mounts for ./data ontologies and optional ./deploy overlay.
  • Hardening: non-root tomcat user, image and compose HEALTHCHECK, no-new-privileges.
  • CI/CD: docker-ci.yml checks out OWL2VOWL in CI, builds merged + frontend images, smoke-tests /serverTimeStamp and /convert. docker-release.yml publishes ghcr.io/visualdataweb/webvowl on v* tags.

Companion PR: VisualDataWeb/OWL2VOWL#74 (standalone converter image, .dockerignore, and OWL2VOWL CI/GHCR workflows).

Test plan

  • Clone WebVOWL and OWL2VOWL as siblings; cd WebVOWL && docker compose build && docker compose up -d
  • curl -sf http://localhost:8080/ and curl -sf http://localhost:8080/serverTimeStamp
  • POST foaf.rdf to /convert and confirm JSON response
  • docker compose -f docker-compose.frontend.yml up serves UI without converter
  • Confirm Docker CI workflow passes on this PR

Closes #212
Closes #203
Closes #195

Related: #215, #202, #201, #183, #111

The upstream image still wget's webvowl_1.1.7.war from
vowl.visualdataweb.org; that host is down or returns HTML instead of a
WAR (#212, #203). This replaces it with a multi-stage build: Maven
packages OWL2VOWL from a sibling checkout, Node builds the UI, Tomcat
serves both under ROOT so /convert stays same-origin (#195).

Adds docker-compose, non-root tomcat user, healthchecks, ADR 0001, and
GitHub Actions that build the merged image on PRs and push to GHCR on
v* tags. Frontend-only compose remains for UI-only work.
Drop sibling checkout and Compose additional_contexts. The merged
Dockerfile fetches OWL2VOWL from GitHub during build so only WebVOWL
needs to be cloned locally. Pin converter via OWL2VOWL_GIT_REF.
@BlackDark BlackDark merged commit 28e7dd9 into master Jun 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant