feat(docker): local dev stack built from source#218
Merged
Conversation
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.
4 tasks
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the broken wget-based root
Dockerfilewith a source-built stack documented in ADR 0001.docker/Dockerfile): Maven builds OWL2VOWL from a sibling../OWL2VOWLcheckout (Composeadditional_contexts), Node 12 builds the WebVOWL UI, Tomcat 9 serves both underROOTso/convertand/serverTimeStampstay same-origin.docker-compose.ymlfor the full stack;docker-compose.frontend.ymlfor UI-only. Volume mounts for./dataontologies and optional./deployoverlay.tomcatuser, image and composeHEALTHCHECK,no-new-privileges.docker-ci.ymlchecks out OWL2VOWL in CI, builds merged + frontend images, smoke-tests/serverTimeStampand/convert.docker-release.ymlpublishesghcr.io/visualdataweb/webvowlonv*tags.Companion PR: VisualDataWeb/OWL2VOWL#74 (standalone converter image,
.dockerignore, and OWL2VOWL CI/GHCR workflows).Test plan
WebVOWLandOWL2VOWLas siblings;cd WebVOWL && docker compose build && docker compose up -dcurl -sf http://localhost:8080/andcurl -sf http://localhost:8080/serverTimeStampfoaf.rdfto/convertand confirm JSON responsedocker compose -f docker-compose.frontend.yml upserves UI without converterCloses #212
Closes #203
Closes #195
Related: #215, #202, #201, #183, #111