Table of Contents
- Build System
- Build Components
- Payload build
- Client payload build
- Firebird payload build
- Server runtime build
- GUI runtime build
- Shared runtime sources
- Server image build
- Admin image build
- Client image build
- mRomexis Web App build
- Local Build Scripts
- Manual Build Examples
- Runtime Compose Relationship
- Docker Cache Cleanup
Deutsch | English
Build System
The build system is split into independent layers and service images.
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 Components
Payload build
The payload build extracts the official Romexis Windows installer.
It produces:
/opt/romexis
/opt/romexis-mssql-db
/opt/romexis/version
It also provides files consumed by other service images, including Admin files and the mRomexis Web App WAR when available.
Client payload build
The Client payload is extracted from the same Windows installer with a separate copy map. It produces the files required by the standalone romexis-client image and is versioned as romexis-client-payload:<version>.
Firebird payload build
The Firebird payload build extracts the macOS installer database package.
It produces:
/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 provides reusable server runtime dependencies:
- Java 11
- JavaFX/OpenJFX
- SQL Server tools
- Firebird client libraries and tools
- OS dependencies
- Chilkat
- Java property agent with embedded RxCr2 and RomexisOptionPaneUI runtime patches
GUI runtime build
romexis-gui-runtime contains the architecture-specific graphical stack shared by Admin and Client: Java 17/OpenJFX, X11/noVNC, Mesa/GTK, Chilkat, PropertyAgent with the Java 17 OptionPane null guard, and the DxService compatibility library.
Shared runtime sources
romexis-common/ is the single source location for RomexisPropertyAgent.java, RomexisOptionPaneUIPatch.java, the RxCr2 replacement and dxservice_dummy.c. The agent build embeds ASM and both targeted runtime patches into RomexisPropertyAgent.jar. These sources are compiled into the appropriate runtime images instead of being duplicated in final image directories.
Server image build
The final server image imports:
/opt/romexisfromromexis-payload/opt/romexis-mssql-dbfromromexis-payload/opt/romexis-firebird-dbfromromexis-firebird-payload- server runtime from
romexis-base-jre - runtime helper scripts
Admin image build
The Admin image imports Romexis Admin files from the payload and combines them with the shared browser-accessible romexis-gui-runtime.
Important runtime components:
Xvfb
Openbox
xcompmgr
x11vnc
noVNC/websockify
JavaFX
Client image build
The final Client image combines romexis-client-payload with romexis-gui-runtime and Client-specific startup/test scripts. It no longer inherits from the Admin image.
mRomexis Web App build
The mRomexis Web App image copies:
/opt/romexis/broker/mromexis-html.war
from the Romexis payload into Tomcat as:
/usr/local/tomcat/webapps/ROOT.war
This is only possible for Romexis 6.5.3 and newer.
Local Build Scripts
Local builds are handled through:
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 individual image groups:
./scripts/build-local.sh server-runtime server
./scripts/build-local.sh gui-runtime admin client
./scripts/build-local.sh migration control
Manual Build Examples
The helper scripts are the supported manual entry point because they create the required runtime/payload dependency contexts consistently.
Build reusable runtimes:
./scripts/build-local.sh server-runtime gui-runtime
Build payloads explicitly:
./scripts/build-local.sh payload client-payload firebird-payload
Build final application images:
./scripts/build-local.sh server admin client mromexis
For Windows PowerShell the same targets are available:
.\scripts\build-local.ps1 -Targets server-runtime,gui-runtime,server,admin,client
Runtime Compose Relationship
The runtime Compose files use multi-architecture manifest tags instead of architecture-specific tags.
Feature branches use IMAGE_SUFFIX:
IMAGE_SUFFIX=-feature-romexis-admin
Runtime Compose image references then resolve to branch-specific manifests.
Docker Cache Cleanup
Buildx cache:
docker buildx prune -a -f
Builder cache:
docker builder prune -a -f
System cleanup:
docker system prune -a -f
Do not use --volumes unless you intentionally want to remove unused database/application volumes.
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