Documentation/Build & deploy

Build container images

Build the backend and frontend from one reviewed commit.

Choose one source revision#

Build the backend and frontend from the same reviewed commit. The current backend version is 0.1.0. Record the commit and use an immutable release tag when publishing your images.

Docker-only backend build#

The quickstart Dockerfile compiles the backend inside its build stage, so no host JVM is required:

bashdocker build \
  --file deployment/quickstart/Dockerfile \
  --tag kui-allinone:0.1.0 \
  .

Run from the repository root. The initial build downloads the toolchain and dependencies.

Mill backend build#

With the repository's JVM toolchain available, build the deterministic all-in-one image:

bash./mill --no-server deployment.docker.allinone.docker.build

For the fault-isolated topology, build all backend images:

bash./mill --no-server deployment.docker.__.docker.build

The modules include gateway, cluster, topic, message, consumer, schema, metrics, alerts, Connect, ksqlDB, and all-in-one images. The frontend is separate.

Build the frontend#

bashdocker build \
  --file deployment/frontend/Dockerfile \
  --tag kui-frontend:0.1.0 \
  .

The build stage installs the pinned frontend toolchain, typechecks, and builds the browser bundle. The runtime image serves it with unprivileged nginx on port 8082.

Verify the release#

Inspect the local images and version labels. Run the two halves together and compare /api/v1/info with the frontend build shown in Settings. Set KUI_BUILD_VERSION at frontend runtime to the same release identifier.

These commands build for the local Docker platform. They do not establish a multi-architecture registry release. Use only a platform you have built and verified.

Continue with publish to a registry and run your own images.

View this guide on GitHub

Search documentation

Search features, guides, and deployment.

Open full-size image