Clone
3
Local Build Scripts
Patrick Gniza edited this page 2026-08-21 09:04:39 +02:00

Deutsch | English

Local Build Scripts

Local image builds are handled through dedicated helper scripts.

docker-compose.build.yml is no longer required.


Files

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 Targets

Available target groups:

all
runtimes
server-runtime
gui-runtime
payload
client-payload
firebird-payload
server
admin
client
mromexis
migration
control
manifests

Examples:

./scripts/build-local.sh server-runtime server
./scripts/build-local.sh gui-runtime admin client
./scripts/build-local.sh migration control

PowerShell examples:

.\scripts\build-local.ps1 -Targets server-runtime,server
.\scripts\build-local.ps1 -Targets gui-runtime,admin,client

Environment Variables

The scripts use the same variables as the runtime Compose setup.

Important examples:

REGISTRY=gitea.buchhorster.de/planmeca
ROMEXIS_VERSION=6.5.3.444.203
TARGETARCH=amd64
IMAGE_SUFFIX=

ROMEXIS_IMAGE=romexis-server
MIGRATION_IMAGE=romexis-migration-service
ADMINISTRATION_IMAGE=romexis-admin
MROMEXIS_WEBAPP_IMAGE=romexis-mromexis-app
CLIENT_IMAGE=romexis-client
CONTROL_AGENT_IMAGE=romexis-control-agent
SERVER_RUNTIME_VERSION=11
GUI_RUNTIME_VERSION=1
REGISTRY_CACHE=0

For feature branches:

IMAGE_SUFFIX=-feature-romexis-admin

Dependency Resolution and Local Aliases

Before building a final image, the scripts ensure that required payload images are available: an existing local image is reused, otherwise the registry is tried, and if the image is still unavailable it is built from the local project sources.

For PUSH=0, locally built runtime/payload dependencies are additionally tagged with isolated romexis-local/... aliases. These aliases prevent BuildKit from resolving an older registry image that happens to have the same public tag. The aliases are build-only implementation details and are not published.



Relationship to Runtime Compose

The build scripts create the image tags expected by the runtime Compose files.

Runtime Compose uses manifest-style image references such as:

${REGISTRY}/${ROMEXIS_IMAGE}:${ROMEXIS_VERSION}${IMAGE_SUFFIX}
${REGISTRY}/${ADMINISTRATION_IMAGE}:latest${IMAGE_SUFFIX}
${REGISTRY}/${MROMEXIS_WEBAPP_IMAGE}:${ROMEXIS_VERSION}${IMAGE_SUFFIX}

This allows the same .env to be used for local builds and runtime startup.

Safe Push and Manifest Publication

A local single-architecture build with PUSH=1 publishes only the architecture tag, for example romexis-server:<version>-amd64. It does not replace the public multi-architecture tag.

After both architectures have been pushed, publish manifests explicitly:

PUSH=1 ./scripts/build-local.sh manifests

PowerShell:

.\scripts\build-local.ps1 -Targets manifests -Push 1


Typical Workflow

cp .env.sample .env
nano .env

./scripts/build-local.sh all

docker compose up -d

Inspect the selected runtime stack:

docker compose config