diff --git a/Server-Image.md b/Server-Image.md new file mode 100644 index 0000000..0dd3a12 --- /dev/null +++ b/Server-Image.md @@ -0,0 +1,99 @@ +# Server Image + +Directory: + +```text +romexis/ +``` + +The final Romexis Server image combines the prepared payload, runtime base image and runtime scripts. + +--- + +## Build Inputs + +```text +ROMEXIS_BASE_IMAGE +ROMEXIS_PAYLOAD_IMAGE +ROMEXIS_FIREBIRD_PAYLOAD_IMAGE +ROMEXIS_VERSION +TARGETARCH +CHILKAT_VERSION +``` + +Example defaults: + +```dockerfile +ARG TARGETARCH=amd64 +ARG ROMEXIS_VERSION=6.5.3.444.203 + +ARG ROMEXIS_BASE_IMAGE=gitea.buchhorster.de/patrick/romexis-base-jre:11-${TARGETARCH} +ARG ROMEXIS_PAYLOAD_IMAGE=gitea.buchhorster.de/patrick/romexis-payload:${ROMEXIS_VERSION} +ARG ROMEXIS_FIREBIRD_PAYLOAD_IMAGE=gitea.buchhorster.de/patrick/romexis-firebird-payload:latest +``` + +--- + +## Build Stages + +```text +Stage 1: romexis-payload + Imports /opt/romexis and /opt/romexis-mssql-db. + +Stage 2: romexis-firebird-payload + Imports /opt/romexis-firebird-db. + +Stage 3: agent-build + Compiles RomexisPropertyAgent.java. + +Stage 4: final image + Assembles runtime image. +``` + +--- + +## Runtime Scripts + +The final image includes: + +```text +/entrypoint.sh +/opt/init-romexis-db.sh +/opt/init-romexis-mssql-db.sh +/opt/init-romexis-firebird-db.sh +/opt/init-romexis-db.sh +/opt/fix-keystore-alias.sh +``` + +--- + +## Java Property Agent + +The image includes: + +```text +/opt/romexis/server/RomexisPropertyAgent.jar +``` + +This allows runtime property injection before Romexis starts. + +Example environment variable pattern: + +```text +PROPERTY_AGENT_SET_KEY_= +``` + +--- + +## Runtime Validation + +The Dockerfile should validate important payload outputs during build, especially: + +```text +/opt/romexis/server/RomexisServer.jar +/opt/romexis/version +/opt/romexis-mssql-db +/opt/romexis-firebird-db +``` + +Failing early is preferred over producing an incomplete runtime image.