Clone
6
Payload Images
Patrick Gniza edited this page 2026-08-21 09:04:39 +02:00

Deutsch | English

Payload Images

Payload images are reusable intermediate images containing extracted installer content.


Windows Payload

Directory:

romexis-payload/

Purpose:

  • download official Windows installer
  • extract required InstallShield CAB components
  • build /opt/romexis
  • extract MSSQL initialization SQL files
  • write /opt/romexis/version

Output contract:

/opt/romexis
/opt/romexis-mssql-db
/opt/romexis/version
/opt/romexis/server/RomexisServer.jar

The payload must not contain architecture-specific runtime libraries like Chilkat.

Client Payload

The same Windows installer is also used to build a separate architecture-independent Client payload:

romexis-client-payload:<version>

Its extraction is controlled by romexis-payload/romexis-client-copy-map.tsv. Keeping Client files in a separate payload allows the final romexis-client image to be built independently from the Admin image.

The server/admin payload and Client payload are normally stable, versioned inputs and are reused across feature branches instead of being re-extracted for every commit.



Version File

Supported Windows installer URLs are maintained in:

romexis-payload/romexis-versions.env

Example:

6_5_3_444_203=https://content.planmeca.com/files/Planmeca_Romexis_6.5.3.444.203_Win.zip

Copy Map

Installer extraction is controlled by:

romexis-payload/romexis-copy-map.tsv

Format:

Source<TAB>Destination

Example:

Server_jar	/opt/romexis/server
Server_Program_64bit/server/*.xml	/opt/romexis/server

When this mapping changes, all payload versions should be rebuilt because the extracted runtime layout may change.


Firebird Payload

Directory:

romexis-firebird-payload/

Purpose:

  • download official macOS DMG
  • extract PKG payloads
  • collect Firebird database SQL scripts
  • collect original backup/restore helper scripts
  • include romexis_new.fdb as reference/template

Output contract:

/opt/romexis-firebird-db/version
/opt/romexis-firebird-db/scripts
/opt/romexis-firebird-db/tools
/opt/romexis-firebird-db/templates
/opt/romexis-firebird-db/layout

Important files:

/opt/romexis-firebird-db/scripts/rxdb.sh
/opt/romexis-firebird-db/scripts/rxupd.sh
/opt/romexis-firebird-db/scripts/RX_Base_10fb_MAC.sql
/opt/romexis-firebird-db/scripts/RX_Update_653.sql
/opt/romexis-firebird-db/tools/Romexis_Firebird_Backup.sh
/opt/romexis-firebird-db/tools/Romexis_Firebird_Restore.sh
/opt/romexis-firebird-db/templates/romexis_new.fdb

CI Rebuild and Staging Behavior

Drone rebuilds payloads only when a new Romexis version or payload extraction/copy-map change requires it. A feature branch that changes payload generation uses isolated commit-specific tags such as:

romexis-payload:ci-<commit>-<version>
romexis-client-payload:ci-<commit>-<version>

This prevents experimental extraction changes from replacing stable versioned payloads.



Inspecting a Payload Image

If a payload image is based on scratch, it may not have a shell.

Use:

docker save gitea.buchhorster.de/planmeca/romexis-firebird-payload:latest -o payload.tar
mkdir payload rootfs
tar -xf payload.tar -C payload
tar -xf payload/<layer-id>/layer.tar -C rootfs
find rootfs/opt -type f | sort

If the image includes a shell:

docker run --rm -it --entrypoint sh   gitea.buchhorster.de/planmeca/romexis-firebird-payload:latest