Table of Contents
- Romexis Docker Build Process
- Build Goals
- Image Families
- Romexis Payload Image
- Romexis Base Image
- Romexis Server Image
- Romexis Migration Service Image
- Romexis Admin Image
- mRomexis Web App Image
- Version Resolution
- Local Builds
- Manual Docker Build Examples
- Drone CI/CD Flow
- Runtime Compose and Build Relationship
- Maintenance Notes
- Build Artifacts
Deutsch | English
Romexis Docker Build Process
This document describes the build process for the Romexis Docker image families.
Build Goals
The build system is designed to provide:
- reproducible Docker builds
- reusable image layers
- local developer builds through scripts
- native
amd64andarm64images - multi-architecture manifests
- minimal final runtime images
- maintainable installer extraction logic
- clear separation between payload extraction, shared runtime dependencies and service-specific runtime images
Image Families
Romexis Payload Image
Built from:
romexis-payload/Dockerfile
Contains the extracted installer payload:
/opt/romexis
/opt/romexis-mssql-db
The payload image is architecture-independent and does not contain Java, Chilkat or runtime services.
Tag:
gitea.buchhorster.de/planmeca/romexis-payload:<version>
Romexis Base Image
Built from:
romexis-base/Dockerfile
Contains shared server runtime dependencies such as Java, JavaFX/OpenJFX support, SQL tooling, Firebird client libraries and common OS libraries.
Tags:
gitea.buchhorster.de/planmeca/romexis-base-jre:11-amd64
gitea.buchhorster.de/planmeca/romexis-base-jre:11-arm64
gitea.buchhorster.de/planmeca/romexis-base-jre:11
Romexis Server Image
Built from:
romexis/Dockerfile
Consumes:
romexis-payload:<version>
romexis-base-jre:11-<arch>
Adds:
- native Chilkat runtime
- Romexis Java PropertyAgent
- server entrypoint
- database initialization scripts
- KeyVault and path preparation logic
Tags:
gitea.buchhorster.de/planmeca/romexis-server:<version>-amd64
gitea.buchhorster.de/planmeca/romexis-server:<version>-arm64
gitea.buchhorster.de/planmeca/romexis-server:<version>
Romexis Migration Service Image
Built from the migration service directory.
Provides the web/API service for migration and restore workflows.
Tags:
gitea.buchhorster.de/planmeca/romexis-migration-service:amd64
gitea.buchhorster.de/planmeca/romexis-migration-service:arm64
gitea.buchhorster.de/planmeca/romexis-migration-service:latest
Romexis Admin Image
Built from:
romexis-admin/Dockerfile
Consumes the Romexis payload and provides a browser-accessible Romexis Admin / RomexisConfig environment.
The image includes:
- Romexis Admin files from the payload image
- Xvfb
- Openbox
- xcompmgr
- x11vnc
- noVNC/websockify
- JavaFX runtime support
- DxService Linux compatibility shim
- optional debug xterm
- localized VNC startup splash screen
Tags:
gitea.buchhorster.de/planmeca/romexis-admin:<version>-amd64
gitea.buchhorster.de/planmeca/romexis-admin:<version>-arm64
gitea.buchhorster.de/planmeca/romexis-admin:<version>
gitea.buchhorster.de/planmeca/romexis-admin:latest
mRomexis Web App Image
Built from:
romexis-mromexis-app/Dockerfile
Consumes the Romexis payload and copies:
/opt/romexis/broker/mromexis-html.war
into a Tomcat runtime as:
/usr/local/tomcat/webapps/ROOT.war
Important:
mromexis-html.war exists only in Romexis 6.5.3 and newer.
Builds for older Romexis versions are intentionally skipped.
Tags:
gitea.buchhorster.de/planmeca/romexis-mromexis-app:<version>-amd64
gitea.buchhorster.de/planmeca/romexis-mromexis-app:<version>-arm64
gitea.buchhorster.de/planmeca/romexis-mromexis-app:<version>
gitea.buchhorster.de/planmeca/romexis-mromexis-app:latest
Version Resolution
Supported Romexis versions are defined in:
romexis-payload/romexis-versions.env
Format:
6_5_3_444_203=https://content.planmeca.com/files/Planmeca_Romexis_6.5.3.444.203_Win.zip
Build input:
ROMEXIS_VERSION=6.5.3.444.203
The CI pipeline iterates over this file and builds the required image families for the available versions.
Local Builds
docker-compose.build.yml is no longer used.
Local builds are handled by:
scripts/build-local.sh
scripts/build-local.ps1
Linux/macOS
chmod +x scripts/build-local.sh
./scripts/build-local.sh all
Windows PowerShell
.\scripts\build-local.ps1 -Targets all
Build selected image families
./scripts/build-local.sh base server
./scripts/build-local.sh admin mromexis
./scripts/build-local.sh migration
Typical .env values for local builds:
REGISTRY=gitea.buchhorster.de/planmeca
ROMEXIS_VERSION=6.5.3.444.203
IMAGE_SUFFIX=
TARGETARCH=amd64
ROMEXIS_IMAGE=romexis-server
MIGRATION_IMAGE=romexis-migration-service
ADMINISTRATION_IMAGE=romexis-admin
MROMEXIS_WEBAPP_IMAGE=romexis-mromexis-app
For a feature branch:
IMAGE_SUFFIX=-feature-romexis-admin
Manual Docker Build Examples
Manual builds are useful for debugging a single image family.
Payload
docker buildx build \
--platform linux/amd64 \
--provenance=false \
--sbom=false \
--build-arg ROMEXIS_VERSION=6.5.3.444.203 \
-t gitea.buchhorster.de/planmeca/romexis-payload:6.5.3.444.203 \
--load \
./romexis-payload
Base Image
docker buildx build \
--platform linux/amd64 \
--provenance=false \
--sbom=false \
--build-arg TARGETARCH=amd64 \
--build-arg IMAGE_VERSION=11-amd64 \
-t gitea.buchhorster.de/planmeca/romexis-base-jre:11-amd64 \
--load \
./romexis-base
Server Image
docker buildx build \
--platform linux/amd64 \
--provenance=false \
--sbom=false \
--build-arg TARGETARCH=amd64 \
--build-arg ROMEXIS_VERSION=6.5.3.444.203 \
--build-arg ROMEXIS_BASE_IMAGE=gitea.buchhorster.de/planmeca/romexis-base-jre:11-amd64 \
--build-arg ROMEXIS_PAYLOAD_IMAGE=gitea.buchhorster.de/planmeca/romexis-payload:6.5.3.444.203 \
-t gitea.buchhorster.de/planmeca/romexis-server:6.5.3.444.203-amd64 \
--load \
./romexis
Admin Image
docker buildx build \
--platform linux/amd64 \
--provenance=false \
--sbom=false \
--build-arg TARGETARCH=amd64 \
--build-arg ROMEXIS_VERSION=6.5.3.444.203 \
--build-arg ROMEXIS_PAYLOAD_IMAGE=gitea.buchhorster.de/planmeca/romexis-payload:6.5.3.444.203 \
-t gitea.buchhorster.de/planmeca/romexis-admin:6.5.3.444.203-amd64 \
--load \
./romexis-admin
mRomexis Web App
docker buildx build \
--platform linux/amd64 \
--provenance=false \
--sbom=false \
--build-arg TARGETARCH=amd64 \
--build-arg ROMEXIS_VERSION=6.5.3.444.203 \
--build-arg ROMEXIS_PAYLOAD_IMAGE=gitea.buchhorster.de/planmeca/romexis-payload:6.5.3.444.203 \
-t gitea.buchhorster.de/planmeca/romexis-mromexis-app:6.5.3.444.203-amd64 \
--load \
./romexis-mromexis-app
Drone CI/CD Flow
The Drone pipeline builds and publishes the image families in stages.
High-level flow:
payload
-> base amd64
-> server amd64
-> migration amd64
-> admin amd64
-> mRomexis amd64
-> base arm64
-> server arm64
-> migration arm64
-> admin arm64
-> mRomexis arm64
-> manifests
The exact order may be split across separate architecture pipelines.
Payload rebuild rules
- new version in
romexis-versions.env: build only the new payload image - changed URL for an existing version: rebuild that version
- changed
romexis-copy-map.tsv, payload Dockerfile or helper scripts: rebuild all payload versions - existing payload with no relevant change: skip
mRomexis version rule
mRomexis Web App images are built only for Romexis versions where:
version >= 6.5.3
Older versions are skipped because the payload does not contain mromexis-html.war.
Manifest publishing
Architecture-specific tags are created first:
<image>:<version>-amd64
<image>:<version>-arm64
Then Drone creates the multi-architecture manifest:
<image>:<version>
For selected services, a latest alias is also created from the default Romexis version configured in .env.sample.
Buildx uses:
--provenance=false
--sbom=false
This improves compatibility with registries that do not handle OCI attestations reliably.
Runtime Compose and Build Relationship
The runtime Compose files use manifest tags instead of architecture-specific tags.
For main, IMAGE_SUFFIX is empty:
IMAGE_SUFFIX=
For feature branches, use a branch suffix:
IMAGE_SUFFIX=-feature-romexis-admin
Runtime Compose image references then resolve to the corresponding branch-specific manifests.
Maintenance Notes
Add a new Romexis version
- Add the installer URL to
romexis-payload/romexis-versions.env. - Ensure the copy map still matches the installer layout.
- Build or let CI build the payload image.
- Build server/admin/mRomexis images as applicable.
- Start the stack and verify server, Admin and Web App behavior.
Installer layout changes
- Update
romexis-payload/romexis-copy-map.tsv. - Rebuild the payload image.
- Verify required files under
/opt/romexis. - Rebuild dependent runtime images.
Admin image changes
Check:
- JavaFX native libraries
/usr/lib/jnisymlinks- Openbox startup
- xcompmgr startup
- noVNC access
- VNC lifecycle behavior
- Admin language startup parameter
mRomexis Web App changes
Check:
mromexis-html.warexists in the payload- Tomcat deploys
ROOT.war - proxy endpoint is not open to arbitrary hosts
- version filtering still skips unsupported Romexis versions
Build Artifacts
The final server image contains:
/opt/romexis
/opt/romexis-mssql-db
/usr/lib/libchilkat.so
/opt/romexis/server/RomexisPropertyAgent.jar
/opt/init-romexis-db.sh
/opt/fix-keystore-alias.sh
/entrypoint.sh
The final Admin image contains:
/opt/romexis/admin
/opt/romexis/admin/RomexisPropertyAgent.jar
/opt/romexis/admin/libDxService.so
/opt/romexis/admin/libDxService_64.so
/opt/romexis/admin/RxClientClinic.jar
/usr/local/bin/start.sh
The final mRomexis Web App image contains:
/usr/local/tomcat/webapps/ROOT.war
Romexis Docker Wiki
English
Getting Started
- Project Overview
- Architecture
- Quick Start
- Synology Quick Start
- Use with Docker + WSL in Windows
- Compose Runtime
- Configuration
- Container Images
Runtime Services
- Romexis Admin
- Romexis Client
- mRomexis Web App
- Runtime Layout
- Backup and Restore
- Troubleshooting
- Security
Build System
Database
Migration
Development
Source Documents
Deutsch
Erste Schritte
- Projektübersicht
- Architektur
- Schnellstart
- Synology Quick Start
- Nutzung mit Docker + WSL unter Windows
- Compose-Runtime
- Konfiguration
- Container-Images
Runtime-Dienste
- Romexis Admin
- Romexis Client
- mRomexis Web App
- Runtime-Layout
- Sicherung und Wiederherstellung
- Fehlerbehebung
- Sicherheit
Build-System
Datenbank
Migration
Entwicklung
Quelldokumente
Romexis Docker Project Wiki / Romexis-Docker-Projekt-Wiki
English Home · Deutsche Startseite · English source documents · Deutsche Quelldokumente · Security · Sicherheit
Internal operations and development wiki / Internes Betriebs- und Entwicklungswiki