From e0623158c1ca368e652761fc1e2fa867ab647804 Mon Sep 17 00:00:00 2001 From: Patrick Gniza Date: Sun, 28 Jun 2026 19:44:51 +0000 Subject: [PATCH] =?UTF-8?q?Build=20System=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Build-System.md | 125 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Build-System.md diff --git a/Build-System.md b/Build-System.md new file mode 100644 index 0000000..d562c0c --- /dev/null +++ b/Build-System.md @@ -0,0 +1,125 @@ +# Build System + +The build system is split into independent layers. + +```text +romexis-payload + | + v +romexis-server + ^ + | +romexis-base-jre + +romexis-firebird-payload + | + v +romexis-server +``` + +--- + +## Build Components + +### Payload build + +The payload build extracts the official Romexis installer. + +It produces: + +```text +/opt/romexis +/opt/romexis-mssql-db +/opt/romexis/version +``` + +### Firebird payload build + +The Firebird payload build extracts the macOS installer database package. + +It produces: + +```text +/opt/romexis-firebird-db +/opt/romexis-firebird-db/scripts +/opt/romexis-firebird-db/tools +/opt/romexis-firebird-db/templates +``` + +### Base image build + +The base image provides reusable runtime dependencies: + +- Java 11 +- JavaFX/OpenJFX +- SQL Server tools +- Firebird client libraries and tools +- OS dependencies + +### Server image build + +The final server image imports: + +- `/opt/romexis` from `romexis-payload` +- `/opt/romexis-mssql-db` from `romexis-payload` +- `/opt/romexis-firebird-db` from `romexis-firebird-payload` +- base runtime from `romexis-base-jre` +- Chilkat native library +- Java property agent +- runtime helper scripts + +--- + +## Local Build Commands + +Build payload: + +```bash +docker build --build-arg ROMEXIS_VERSION=6.5.3.444.203 -t gitea.buchhorster.de/patrick/romexis-payload:6.5.3.444.203 ./romexis-payload +``` + +Build Firebird payload: + +```bash +docker build --build-arg ROMEXIS_VERSION=6.5.3.444.203 -t gitea.buchhorster.de/patrick/romexis-firebird-payload:latest ./romexis-firebird-payload +``` + +Build server image: + +```bash +docker build --build-arg TARGETARCH=amd64 --build-arg ROMEXIS_VERSION=6.5.3.444.203 -t gitea.buchhorster.de/patrick/romexis-server:6.5.3.444.203-amd64 ./romexis +``` + +--- + +## Debug Build + +Disable cache and show full logs: + +```bash +docker build --no-cache --progress=plain --build-arg TARGETARCH=amd64 --build-arg ROMEXIS_VERSION=6.5.3.444.203 -t gitea.buchhorster.de/patrick/romexis-server:6.5.3.444.203-amd64 ./romexis +``` + +--- + +## Docker Cache Cleanup + +Buildx cache: + +```bash +docker buildx prune -a -f +``` + +Builder cache: + +```bash +docker builder prune -a -f +``` + +System cleanup: + +```bash +docker system prune -a -f +``` + +Do not use `--volumes` unless you intentionally want to remove unused database/application volumes.