mise oci push
- Usage:
mise oci push [FLAGS] <REF> - Effect: modifies state
- Source code:
src/cli/oci/push.rs
[experimental] Build an OCI image and push it to a registry
Builds from the project's config, as mise oci build does, unless --image-dir names an image layout built earlier. Then uploads only the blobs the registry does not already have. mise pushes with its own registry client, so skopeo, crane, and docker are not needed.
Tool layers whose tool, version, mount point, and file owner match the previously pushed image (or --cache-from) are reused without being rebuilt, so those tools need not be installed locally. Pass --no-cache to rebuild every tool layer.
Credentials come from the files docker and podman use: $REGISTRY_AUTH_FILE, $XDG_RUNTIME_DIR/containers/auth.json, ~/.config/containers/auth.json, then ~/.docker/config.json, including inline auths and credential helpers. Log in with docker login or podman login.
Requires mise settings experimental=true (or MISE_EXPERIMENTAL=1).
Arguments
<REF>— Destination registry reference (e.g.ghcr.io/me/devenv:latest)
Flags
--cache-from <REF>— Reuse unchanged tool layers from this image instead of the destination's current tagMust be in the same repository as the destination. Useful when every push gets a new tag, as with per-commit tags in CI:
mise oci push --cache-from ghcr.io/me/dev:latest ghcr.io/me/dev:$SHA. Cannot be combined with --no-cache.--from <FROM>— Base image for the buildOverrides [oci].from and the oci.default_from setting.
--image-dir <IMAGE_DIR>— Push an existing OCI image layout instead of building oneCannot be combined with --cache-from, --from, --include-global, --mount-point, --no-mise, or --owner.
--include-global— Also package tools from the global and system configsSee
mise oci build --helpfor details.--mount-point <MOUNT_POINT>— Where tools install inside the imageOverrides [oci].mount_point and the oci.default_mount_point setting.
--no-cache— Rebuild tool layers without using the remote or local layer cache--no-mise— Do not embed the running mise binary at /usr/local/bin/mise--owner <UID[:GID]>— UID[:GID] to assign to every tar entry when buildingOverrides [oci].user_id and [oci].group_id. Defaults to 0:0. If GID is omitted, it defaults to UID. This affects file ownership only; [oci].user controls the image USER directive.
--update-index— Maintain the tag as a multi-arch image indexPushes this build's manifest by digest and points the tag at an OCI image index containing one entry per platform, preserving entries other architectures pushed. Run
mise oci push --update-indexfrom one runner per platform to assemble a multi-arch tag.-h --help— Print help
Examples
Build and push to GHCR
mise oci push ghcr.io/me/devenv:latestPush an image built earlier
mise oci build -o ./img
mise oci push --image-dir ./img ghcr.io/me/devenv:v1