Skip to content

mise oci push

[experimental] Build an OCI image and push it to a registry

Requires skopeo (or crane) on PATH. If --image-dir is not passed, builds fresh from the current mise.toml first, then shells out to skopeo copy oci:<dir> docker://<ref> (or crane push <dir> <ref>). Authentication is handled by the underlying tool — configure it the same way you would for a plain skopeo / crane push (e.g. docker login, REGISTRY_AUTH_FILE, ~/.config/containers/auth.json).

Requires mise settings experimental=true (or MISE_EXPERIMENTAL=1).

Arguments

<REF>

Destination registry reference (e.g. ghcr.io/me/devenv:latest)

Flags

--from <FROM>

Base image for the build (ignored with --image-dir)

--image-dir <IMAGE_DIR>

Push an already-built OCI image layout (skip the build step)

--mount-point <MOUNT_POINT>

Override in-image mount point (ignored with --image-dir)

--no-mise

Don't embed the mise binary (ignored with --image-dir)

--tool <TOOL>

Force the push tool (auto, skopeo, crane). Default auto

Choices:

  • auto
  • skopeo
  • crane

Default: auto

Examples:

Build and push to GHCR:
$ mise oci push ghcr.io/me/devenv:latest

Push an image built earlier:
$ mise oci build -o ./img
$ mise oci push --image-dir ./img ghcr.io/me/devenv:v1

Force a specific push tool:
$ mise oci push --tool crane ghcr.io/me/devenv:latest

Auth:

mise shells out to skopeo (preferred) or crane; configure registry
credentials the usual way — `docker login`, `REGISTRY_AUTH_FILE`,
or `~/.config/containers/auth.json` for skopeo; `crane auth login`
for crane.
MIT LicenseCopyright © 2026en.dev