Table of Contents
- Romexis Docker Build-Prozess
- Ziele des Builds
- Image-Familien
- Romexis Payload Image
- Romexis Base Image
- Romexis Server Image
- Romexis Migration Service Image
- Romexis Admin Image
- mRomexis WebApp Image
- Versionsauflösung
- Lokale Builds
- Manuelle Docker-Build-Beispiele
- Drone CI/CD Ablauf
- Zusammenhang zwischen Runtime Compose und Build
- Wartungshinweise
- Neue Romexis-Version hinzufügen
- Änderungen am Installerlayout
- Änderungen am Admin Image
- Änderungen an der mRomexis WebApp
- Build-Artefakte
Deutsch | English
Romexis Docker Build-Prozess
Dieses Dokument beschreibt den Build-Prozess für die Romexis-Docker-Image-Familien.
Ziele des Builds
Das Build-System ist darauf ausgelegt, folgende Ziele zu erfüllen:
- reproduzierbare Docker-Builds
- wiederverwendbare Image-Schichten
- lokale Entwickler-Builds über Skripte
- native
amd64- undarm64-Images - Multiarch-Manifeste
- minimale finale Runtime-Images
- wartbare Installer-Extraktionslogik
- klare Trennung zwischen Payload-Extraktion, gemeinsamen Laufzeitabhängigkeiten und dienstspezifischen Runtime-Images
Image-Familien
Romexis Payload Image
Gebaut aus:
romexis-payload/Dockerfile
Enthält den extrahierten Installer-Payload:
/opt/romexis
/opt/romexis-mssql-db
Das Payload Image ist architekturunabhängig und enthält weder Java noch Chilkat noch Runtime-Dienste.
Tag:
gitea.buchhorster.de/planmeca/romexis-payload:<version>
Romexis Base Image
Gebaut aus:
romexis-base/Dockerfile
Enthält gemeinsame Server-Laufzeitabhängigkeiten wie Java, JavaFX/OpenJFX-Unterstützung, SQL-Werkzeuge, Firebird-Clientbibliotheken und gemeinsame Betriebssystembibliotheken.
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
Gebaut aus:
romexis/Dockerfile
Verwendet:
romexis-payload:<version>
romexis-base-jre:11-<arch>
Ergänzt:
- native Chilkat-Laufzeit
- Romexis Java PropertyAgent
- Server-Entrypoint
- Datenbankinitialisierung
- KeyVault- und Pfadvorbereitung
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
Gebaut aus dem Migration-Service-Verzeichnis.
Stellt Web/API-Dienst für Migrations- und Restore-Workflows bereit.
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
Gebaut aus:
romexis-admin/Dockerfile
Verwendet das Romexis Payload Image und stellt eine browserbasierte Romexis Admin / RomexisConfig Umgebung bereit.
Das Image enthält:
- Romexis Admin Dateien aus dem Payload Image
- Xvfb
- Openbox
- xcompmgr
- x11vnc
- noVNC/websockify
- JavaFX Runtime-Unterstützung
- DxService Linux-Kompatibilitäts-Shim
- optionales Debug-xterm
- lokalisierten VNC-Start-Splashscreen
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 WebApp Image
Gebaut aus:
romexis-mromexis-app/Dockerfile
Verwendet das Romexis Payload Image und kopiert:
/opt/romexis/broker/mromexis-html.war
in eine Tomcat-Runtime als:
/usr/local/tomcat/webapps/ROOT.war
Wichtig:
mromexis-html.war existiert erst ab Romexis 6.5.3.
Builds für ältere Romexis-Versionen werden bewusst übersprungen.
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
Versionsauflösung
Unterstützte Romexis-Versionen werden in folgender Datei definiert:
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-Eingabe:
ROMEXIS_VERSION=6.5.3.444.203
Die CI-Pipeline iteriert über diese Datei und baut die benötigten Image-Familien für die verfügbaren Versionen.
Lokale Builds
docker-compose.build.yml wird nicht mehr verwendet.
Lokale Builds werden ausgeführt über:
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
Ausgewählte Image-Familien bauen
./scripts/build-local.sh base server
./scripts/build-local.sh admin mromexis
./scripts/build-local.sh migration
Typische .env Werte für lokale 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
Für Feature-Branches:
IMAGE_SUFFIX=-feature-romexis-admin
Manuelle Docker-Build-Beispiele
Manuelle Builds sind hilfreich, um einzelne Image-Familien zu debuggen.
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 WebApp
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 Ablauf
Die Drone-Pipeline baut und veröffentlicht die Image-Familien in mehreren Stufen.
Grobe Reihenfolge:
payload
-> base amd64
-> server amd64
-> migration amd64
-> admin amd64
-> mRomexis amd64
-> base arm64
-> server arm64
-> migration arm64
-> admin arm64
-> mRomexis arm64
-> manifests
Die genaue Reihenfolge kann auf mehrere Architektur-Pipelines aufgeteilt sein.
Payload-Rebuild-Regeln
- neue Version in
romexis-versions.env: nur neues Payload Image bauen - geänderte URL einer bestehenden Version: diese Version neu bauen
- geänderte
romexis-copy-map.tsv, Payload-Dockerfile oder Hilfsskripte: alle Payload-Versionen neu bauen - vorhandenes Payload ohne relevante Änderung: überspringen
mRomexis-Versionsregel
mRomexis-WebApp-Images werden nur gebaut, wenn gilt:
version >= 6.5.3
Ältere Versionen werden übersprungen, weil das Payload kein mromexis-html.war enthält.
Manifest-Veröffentlichung
Zuerst werden architekturspezifische Tags erstellt:
<image>:<version>-amd64
<image>:<version>-arm64
Danach erstellt Drone das Multiarch-Manifest:
<image>:<version>
Für ausgewählte Dienste wird zusätzlich ein latest Alias aus der Default-Romexis-Version in .env.sample erzeugt.
Buildx verwendet:
--provenance=false
--sbom=false
Dies verbessert die Kompatibilität mit Registries, die OCI-Attestations nicht zuverlässig verarbeiten.
Zusammenhang zwischen Runtime Compose und Build
Die Runtime-Compose-Dateien verwenden Manifest-Tags statt architekturspezifischer Tags.
Für main bleibt IMAGE_SUFFIX leer:
IMAGE_SUFFIX=
Für Feature-Branches wird ein Branch-Suffix verwendet:
IMAGE_SUFFIX=-feature-romexis-admin
Die Runtime-Compose-Image-Referenzen lösen dadurch auf die passenden branch-spezifischen Manifeste auf.
Wartungshinweise
Neue Romexis-Version hinzufügen
- Installer-URL in
romexis-payload/romexis-versions.envergänzen. - Prüfen, ob die Copy-Map weiterhin zum Installerlayout passt.
- Payload Image bauen oder durch CI bauen lassen.
- Server/Admin/mRomexis-Images bauen, sofern zutreffend.
- Stack starten und Server, Admin und WebApp testen.
Änderungen am Installerlayout
romexis-payload/romexis-copy-map.tsvaktualisieren.- Payload Image neu bauen.
- Benötigte Dateien unter
/opt/romexisprüfen. - Abhängige Runtime-Images neu bauen.
Änderungen am Admin Image
Prüfen:
- JavaFX-Native-Libraries
/usr/lib/jniSymlinks- Openbox-Start
- xcompmgr-Start
- noVNC-Zugriff
- VNC-Lifecycle-Verhalten
- Admin-Sprache als Startparameter
Änderungen an der mRomexis WebApp
Prüfen:
mromexis-html.warexistiert im Payload- Tomcat deployed
ROOT.war - Proxy-Endpunkt ist kein offener Proxy
- Versionsfilter überspringt weiterhin nicht unterstützte Romexis-Versionen
Build-Artefakte
Das finale Server Image enthält:
/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
Das finale Admin Image enthält:
/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
Das finale mRomexis-WebApp-Image enthält:
/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