jdx/mise · error
no supported container engine found. Install podman or docke
Error message
no supported container engine found. Install podman or docker.
What it means
With the default `Engine::Auto`, mise probes PATH for `podman` first, then `docker`; if neither exists it bails because every `mise oci run` code path needs a container engine to load and run the image layout. This is the no---engine variant of the two engine-not-found errors.
Source
Thrown at src/cli/oci/run.rs:243
if file::which("podman").is_some() {
Ok(Engine::Podman)
} else {
bail!("--engine podman requested but `podman` was not found on PATH")
}
}
Engine::Docker => {
if file::which("docker").is_none() {
bail!("--engine docker requested but `docker` was not found on PATH");
}
Ok(Engine::Docker)
}
Engine::Auto => {
if file::which("podman").is_some() {
Ok(Engine::Podman)
} else if file::which("docker").is_some() {
Ok(Engine::Docker)
} else {
bail!("no supported container engine found. Install podman or docker.")
}
}
}
}
fn engine_name(engine: Engine) -> &'static str {
match engine {
Engine::Podman => "podman",
Engine::Docker => "docker",
Engine::Auto => unreachable!("select_engine resolves Auto to a concrete engine"),
}
}
/// Load the OCI layout at `image_dir` into the given engine and return the
/// image reference that should be passed to the engine's `run` subcommand.
///
/// We don't rely on `podman tag` here because `podman tag` takes an image
/// name/ID (not a transport reference), and the image name that `podmanView on GitHub (pinned to 9dcfcaa0dc)
Solutions
- Install podman (rootless-friendly) or Docker
- If an engine is installed but hidden, fix PATH so `which podman`/`which docker` succeeds in mise's environment
- In CI, add an engine install step (e.g. `apt-get install -y podman-docker` or docker-in-runner setup) before mise oci commands
Example fix
# before (neither engine installed) mise oci run ghcr.io/you/devenv:tag -- bash # after sudo apt-get install -y podman && mise oci run ghcr.io/you/devenv:tag -- bash
Defensive patterns
Strategy: validation
Validate before calling
# bash: fail fast with your own message when no engine exists if ! command -v podman >/dev/null 2>&1 && ! command -v docker >/dev/null 2>&1; then echo "mise oci needs podman or docker; install one first" >&2; exit 2 fi mise oci run -- bash
Prevention
- Add an engine install/verify step to CI images before any mise oci command
- Remember mise only probes PATH — flatpak or unusual installs need their CLI on PATH
When it happens
Trigger: `mise oci run ...` (no --engine) on a host with neither podman nor docker installed or on PATH — bare CI containers, fresh VMs, minimal devimages.
Common situations: Running mise oci commands inside docker:`slim`-style CI images that assume an outer Docker socket but ship no engine CLI; hardened remote dev boxes; forgetting to start/install an engine after OS reinstall.
Related errors
- --engine podman requested but `podman` was not found on PATH
- --engine docker requested but `docker` was not found on PATH
- podman pull failed: {}: {stderr}
- podman pull succeeded but printed no image ID
- container engine command 'docker' was not found; set engine_
AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17).
Data as JSON: /api/errors/aee854b071a54ead.
Report an issue: GitHub.