Goal
Give users a familiar, container-style workflow for producing unikernel images: a new datumctl build plugin that builds a unikernel OCI image from an application's Dockerfile and pushes it to a registry of the user's choosing (Docker Hub, GHCR, a private registry, …), producing an image reference that deploys directly on Datum compute.
Why
Deploying on Datum compute today requires a unikernel image that was built off-platform with the Unikraft toolchain and pushed by hand. That means knowing tooling and packaging rules most users have never seen — plain docker build output does not boot on the runtime. Users coming from other providers expect build then push with their existing registry credentials to just work; the build plugin closes that gap without asking them to learn unikernel internals.
Requirements
- Familiar experience. Dockerfile in, image reference out:
--tag/--push semantics that mirror docker build/docker push, with registry auth taken from the standard Docker credential config. Requiring a local Docker/BuildKit daemon is acceptable — that matches the experience of the tools users already run.
- Any registry. The user picks the push target; nothing assumes a Datum-operated registry. Private registries work end to end with the existing image pull credential flow at deploy time.
- Bootable output. The plugin owns the unikernel packaging rules (target platform, OCI index layout, PIE and image-size constraints) so images it produces boot on Datum compute, and constraint violations fail at build time with actionable errors instead of surfacing as boot failures.
- Standard plugin distribution. Ships through the datumctl plugin index (
datumctl plugin install …) like the existing compute plugin.
Acceptance criteria
From the consumer's point of view:
Per-language guides and CI-tested working examples are tracked separately in #175; the quickstart above is part of this plugin's definition of done.
References
Authoring the plugin (datumctl):
Unikraft image building:
User-facing build guides to model ours on:
Goal
Give users a familiar, container-style workflow for producing unikernel images: a new datumctl build plugin that builds a unikernel OCI image from an application's Dockerfile and pushes it to a registry of the user's choosing (Docker Hub, GHCR, a private registry, …), producing an image reference that deploys directly on Datum compute.
Why
Deploying on Datum compute today requires a unikernel image that was built off-platform with the Unikraft toolchain and pushed by hand. That means knowing tooling and packaging rules most users have never seen — plain
docker buildoutput does not boot on the runtime. Users coming from other providers expectbuildthenpushwith their existing registry credentials to just work; the build plugin closes that gap without asking them to learn unikernel internals.Requirements
--tag/--pushsemantics that mirrordocker build/docker push, with registry auth taken from the standard Docker credential config. Requiring a local Docker/BuildKit daemon is acceptable — that matches the experience of the tools users already run.datumctl plugin install …) like the existing compute plugin.Acceptance criteria
From the consumer's point of view:
datumctl plugin installand get going from--helpalone — no separate setup guide needed for a first build.docker login.Per-language guides and CI-tested working examples are tracked separately in #175; the quickstart above is part of this plugin's definition of done.
References
Authoring the plugin (datumctl):
go.datum.net/datumctl/pluginGo SDK, checksum/trust requirementsUnikraft image building:
unikraftCLI (supersedeskraft cloud); build requires a Docker/BuildKit daemonUser-facing build guides to model ours on: