Table of Contents
- Build-System
- Build-Komponenten
- Payload-Build
- Client-Payload-Build
- Firebird-Payload-Build
- Server-Runtime-Build
- GUI-Runtime-Build
- Gemeinsame Runtime-Quellen
- Server-Image-Build
- Admin-Image-Build
- Client-Image-Build
- Build der mRomexis Web App
- Lokale Build-Skripte
- Beispiele für manuelle Builds
- Beziehung zur Runtime-Compose-Konfiguration
- Bereinigung des Docker-Caches
Build-System
Das Build-System ist in unabhängige Schichten und Service-Images aufgeteilt.
romexis-payload ----------------+--> romexis-server
+--> romexis-admin
+--> romexis-mromexis-app
romexis-client-payload ------------> romexis-client
romexis-base-jre ------------------> romexis-server
romexis-gui-runtime -----------+--> romexis-admin
+--> romexis-client
romexis-firebird-payload ----------> romexis-server
romexis-common -> server/gui runtime build sources
Build-Komponenten
Payload-Build
Der Payload-Build extrahiert den offiziellen Romexis-Windows-Installer.
Er erzeugt:
/opt/romexis
/opt/romexis-mssql-db
/opt/romexis/version
Er stellt außerdem Dateien bereit, die von anderen Service-Images verwendet werden, einschließlich Admin-Dateien und, sofern verfügbar, der WAR-Datei der mRomexis Web App.
Client-Payload-Build
Das Client-Payload wird aus demselben Windows-Installer mit einer separaten Copy-Map extrahiert. Es erzeugt die für das eigenständige Image romexis-client benötigten Dateien und wird als romexis-client-payload:<version> versioniert.
Firebird-Payload-Build
Der Firebird-Payload-Build extrahiert das Datenbankpaket des macOS-Installers.
Er erzeugt:
/opt/romexis-firebird-db
/opt/romexis-firebird-db/scripts
/opt/romexis-firebird-db/tools
/opt/romexis-firebird-db/templates
Server-Runtime-Build
romexis-base-jre stellt wiederverwendbare Server-Runtime-Abhängigkeiten bereit:
- Java 11
- JavaFX/OpenJFX
- SQL-Server-Werkzeuge
- Firebird-Clientbibliotheken und -Werkzeuge
- Betriebssystemabhängigkeiten
- Chilkat
- Java Property Agent mit eingebetteten RxCr2- und RomexisOptionPaneUI-Runtime-Patches
GUI-Runtime-Build
romexis-gui-runtime enthält den von Admin und Client gemeinsam verwendeten architekturspezifischen Grafik-Stack: Java 17/OpenJFX, X11/noVNC, Mesa/GTK, Chilkat, PropertyAgent mit Java-17-OptionPane-Null-Guard und die DxService-Kompatibilitätsbibliothek.
Gemeinsame Runtime-Quellen
romexis-common/ ist der zentrale Quellort für RomexisPropertyAgent.java, RomexisOptionPaneUIPatch.java, den RxCr2-Ersatz und dxservice_dummy.c. Der Agent-Build bettet ASM und beide gezielten Runtime-Patches in RomexisPropertyAgent.jar ein. Diese Quellen werden in die passenden Runtime-Images kompiliert, statt in Verzeichnissen finaler Images dupliziert zu werden.
Server-Image-Build
Das finale Server-Image importiert:
/opt/romexisausromexis-payload/opt/romexis-mssql-dbausromexis-payload/opt/romexis-firebird-dbausromexis-firebird-payload- die Server-Runtime aus
romexis-base-jre - Runtime-Hilfsskripte
Admin-Image-Build
Das Admin-Image importiert die Romexis-Admin-Dateien aus der Payload und kombiniert sie mit der gemeinsamen browserzugänglichen romexis-gui-runtime.
Wichtige Runtime-Komponenten:
Xvfb
Openbox
xcompmgr
x11vnc
noVNC/websockify
JavaFX
Client-Image-Build
Das finale Client-Image kombiniert romexis-client-payload mit romexis-gui-runtime und Client-spezifischen Start-/Testskripten. Es erbt nicht mehr vom Admin-Image.
Build der mRomexis Web App
Das Image der mRomexis Web App kopiert:
/opt/romexis/broker/mromexis-html.war
aus der Romexis-Payload nach Tomcat als:
/usr/local/tomcat/webapps/ROOT.war
Dies ist nur mit Romexis 6.5.3 und neuer möglich.
Lokale Build-Skripte
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
Einzelne Image-Gruppen bauen:
./scripts/build-local.sh server-runtime server
./scripts/build-local.sh gui-runtime admin client
./scripts/build-local.sh migration control
Beispiele für manuelle Builds
Die Hilfsskripte sind der unterstützte manuelle Einstiegspunkt, weil sie die benötigten Runtime-/Payload-Abhängigkeitskontexte konsistent erzeugen.
Wiederverwendbare Runtimes bauen:
./scripts/build-local.sh server-runtime gui-runtime
Payloads explizit bauen:
./scripts/build-local.sh payload client-payload firebird-payload
Finale Anwendungs-Images bauen:
./scripts/build-local.sh server admin client mromexis
Für Windows PowerShell stehen dieselben Targets bereit:
.\scripts\build-local.ps1 -Targets server-runtime,gui-runtime,server,admin,client
Beziehung zur Runtime-Compose-Konfiguration
Die Runtime-Compose-Dateien verwenden Multi-Architektur-Manifest-Tags anstelle architekturspezifischer Tags.
Feature-Branches verwenden IMAGE_SUFFIX:
IMAGE_SUFFIX=-feature-romexis-admin
Die Image-Referenzen der Runtime-Compose-Konfiguration werden damit in Branch-spezifische Manifeste aufgelöst.
Bereinigung des Docker-Caches
Buildx-Cache:
docker buildx prune -a -f
Builder-Cache:
docker builder prune -a -f
Systembereinigung:
docker system prune -a -f
Verwende --volumes nur, wenn nicht verwendete Datenbank-/Anwendungs-Volumes absichtlich entfernt werden sollen.
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