Skip to content

docs(docker): replace jdxcode/mise image with curl install, update to debian:13-slim#8526

Merged
jdx merged 3 commits intomainfrom
docs/remove-docker-image-refs
Mar 9, 2026
Merged

docs(docker): replace jdxcode/mise image with curl install, update to debian:13-slim#8526
jdx merged 3 commits intomainfrom
docs/remove-docker-image-refs

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Mar 9, 2026

Summary

  • Remove references to jdxcode/mise Docker Hub image (intended for internal use only)
  • Replace with curl https://mise.run | sh installation pattern
  • Update base images from debian:12-slim/bookworm-slim to debian:13-slim (GLIBC 2.41, required for mise binary compatibility)
  • Make installing-mise.md example Dockerfile consistent with Docker cookbook (all MISE_*_DIR env vars)
  • Link to Docker cookbook from installation page

Test plan

  • Tested both Dockerfiles locally with docker build — both install mise and run mise --version successfully on debian:13-slim

🤖 Generated with Claude Code

Replace references to jdxcode/mise Docker image with curl-based
installation in docs. The Docker image is for internal use only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the mise documentation regarding Docker usage. It shifts the recommended approach away from directly using the jdxcode/mise Docker Hub image, which is intended for internal purposes, towards a more general and flexible curl-based installation within a custom Dockerfile. This change aims to clarify best practices for users integrating mise into their Docker environments and improve the accuracy of installation instructions.

Highlights

  • Documentation Update: Updated documentation to replace references to the jdxcode/mise Docker image with a curl https://mise.run | sh installation method.
  • Example Dockerfile Revision: Modified the example Dockerfile in installing-mise.md to demonstrate a curl-based installation rather than using the jdxcode/mise image.
  • Docker Cookbook Task Adjustment: Adjusted the Docker cookbook task to utilize a locally-built Docker image instead of the jdxcode/mise:latest image.
  • Improved Navigation: Introduced a link to the Docker cookbook from the main installation page for better discoverability.
Changelog
  • docs/installing-mise.md
    • Removed the direct docker run jdxcode/mise command example.
    • Added a link to the dedicated Docker cookbook.
    • Rewrote the example Dockerfile to build mise from a debian:bookworm-slim base image using apt-get for dependencies and curl https://mise.run | sh for mise installation, replacing the multi-stage build from jdxcode/mise:latest.
  • docs/mise-cookbook/docker.md
    • Modified the mise.toml task for running mise in Docker to use a locally built debian-mise image instead of jdxcode/mise:latest.
    • Updated the accompanying shell command examples and the path for config.toml in the mise prune step.
Activity
  • The author has provided a summary of changes and a test plan.
  • The PR was generated with Claude Code, indicating AI assistance in its creation.
  • The author plans to verify that the documentation renders correctly.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the documentation to discourage the use of the jdxcode/mise Docker image, favoring installation via a curl script instead. The changes are generally good and align with the goal of the PR. I've found a couple of issues in the updated Docker examples. The example Dockerfile in installing-mise.md is broken as it will fail to find the mise binary after installation. The example command in mise-cookbook/docker.md uses an incorrect path for the configuration file. I've provided suggestions to fix these issues.

Note: Security Review has been skipped due to the limited scope of the PR.

Comment thread docs/installing-mise.md
Comment on lines +203 to 205
ENV PATH="/mise/shims:$PATH"
RUN curl https://mise.run | sh
RUN mise trust -a && mise install
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This Dockerfile example is likely to fail. The curl installer will place mise in /root/.local/bin/mise by default, which is not in the PATH. The subsequent RUN mise ... command will fail. Also, the shims directory will be at /root/.local/share/mise/shims, not /mise/shims as specified in the PATH.

To fix this, you should explicitly set MISE_INSTALL_PATH and MISE_DATA_DIR to ensure mise is installed to a location in the PATH and that the shims path is correct. This also makes the example more consistent with the one in the Docker cookbook.

Suggested change
ENV PATH="/mise/shims:$PATH"
RUN curl https://mise.run | sh
RUN mise trust -a && mise install
ENV MISE_INSTALL_PATH="/usr/local/bin/mise"
ENV MISE_DATA_DIR="/mise"
ENV PATH="/mise/shims:$PATH"
RUN curl https://mise.run | sh
RUN mise trust -a && mise install

Comment thread docs/mise-cookbook/docker.md Outdated
root@75f179a190a1:/mise# mise prune --yes
# mise pruned configuration links
# mise python@3.13.1 ✓ remove /mise/cache/python/3.13.1
root@75f179a190a1:/# echo "" > ~/.config/mise/config.toml
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The path to config.toml seems incorrect. The Dockerfile example in this document sets ENV MISE_CONFIG_DIR="/mise". Therefore, mise will look for its configuration in the /mise directory. The command should write to /mise/config.toml instead of ~/.config/mise/config.toml.

Suggested change
root@75f179a190a1:/# echo "" > ~/.config/mise/config.toml
root@75f179a190a1:/# echo "" > /mise/config.toml

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 9, 2026

Greptile Summary

This docs-only PR stops recommending the jdxcode/mise Docker Hub image (intended for internal use) and replaces it with the official curl https://mise.run | sh installation pattern throughout the documentation. Both changed files now use debian:13-slim as the base image and share the same consistent set of ENV variables (MISE_DATA_DIR, MISE_CONFIG_DIR, MISE_CACHE_DIR, MISE_INSTALL_PATH, PATH).

Key changes:

  • docs/installing-mise.md: The Docker section now links to the cookbook and provides an example Dockerfile using the curl installer with all required ENV vars set.
  • docs/mise-cookbook/docker.md: The [tasks.docker] entry now references a locally-built debian-mise image, --pull=always (which would fail for a local image) has been removed, and a "build first" note was added to guide users.
  • A minor prose typo ("useful use if" → "useful if") is fixed in docker.md.

One minor clarity issue: the example Dockerfile in installing-mise.md ends with RUN mise trust -a && mise install, but no .mise.toml is copied into the build context, making that step a no-op as shown. Adding a COPY .mise.toml . line (or dropping the step) would make the example less ambiguous.

Confidence Score: 4/5

  • Safe to merge — docs-only change with no runtime code modified and all required ENV vars correctly set.
  • Both previously flagged issues (missing ENV vars in installing-mise.md and --pull=always in docker.md) are fully resolved in this revision. The only remaining nit is a no-op mise install step in the example Dockerfile caused by the absence of a COPY instruction, which is a documentation clarity concern rather than a correctness bug.
  • docs/installing-mise.md — the RUN mise trust -a && mise install step at the end of the example Dockerfile lacks a preceding COPY, making it a no-op as written.

Important Files Changed

Filename Overview
docs/installing-mise.md Replaces jdxcode/mise Docker image reference with a curl-based install example; adds all required ENV vars (MISE_DATA_DIR, MISE_INSTALL_PATH, etc.) and links to the Docker cookbook. The example Dockerfile's final RUN mise trust -a && mise install step is a no-op as written (no .mise.toml is copied in), which may confuse readers.
docs/mise-cookbook/docker.md Bumps base image to debian:13-slim, removes the --pull=always flag that would have broken locally-built image usage, fixes a "useful use if" typo, and simplifies the example session output. Changes are correct and consistent.

Sequence Diagram

sequenceDiagram
    participant User
    participant DockerBuild as docker build
    participant InstallScript as mise.run install script
    participant Mise as mise (runtime)

    User->>DockerBuild: docker build -t debian-mise .
    DockerBuild->>InstallScript: curl https://mise.run | sh
    Note over InstallScript: Reads MISE_INSTALL_PATH env var<br/>Installs mise to /usr/local/bin/mise
    InstallScript-->>DockerBuild: mise installed

    User->>DockerBuild: (optional) mise trust -a && mise install
    DockerBuild->>Mise: Trusts config files & installs tools

    User->>User: docker run -it --rm debian-mise
    User->>Mise: eval "$(mise activate bash)"
    Mise-->>User: Shell with mise-managed tools on PATH
Loading

Fix All in Claude Code

Last reviewed commit: 527d674

Comment thread docs/installing-mise.md
Comment thread docs/mise-cookbook/docker.md Outdated
jdx and others added 2 commits March 9, 2026 01:45
- Update base images from debian:12-slim/bookworm-slim to debian:13-slim
  (GLIBC 2.41, needed for mise binary compatibility)
- Add MISE_INSTALL_PATH to installing-mise.md example so mise is on PATH

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add MISE_DATA_DIR/CONFIG_DIR/CACHE_DIR to installing-mise.md example
  to match cookbook and make shims PATH work
- Remove --pull=always from cookbook task (fails for local images)
- Fix config.toml path to /mise/config.toml (matches MISE_CONFIG_DIR)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jdx jdx changed the title docs(docker): stop encouraging jdxcode/mise Docker image docs(docker): replace jdxcode/mise image with curl install, update to debian:13-slim Mar 9, 2026
Comment thread docs/installing-mise.md
ENV MISE_INSTALL_PATH="/usr/local/bin/mise"
ENV PATH="/mise/shims:$PATH"
RUN curl https://mise.run | sh
RUN mise trust -a && mise install
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mise install is a no-op without a .mise.toml

As written, RUN mise trust -a && mise install runs against an empty build context — there is no COPY instruction to bring a .mise.toml (or .tool-versions) into the image, so neither step installs any tools. The commands will succeed silently but do nothing useful.

If this step is meant to demonstrate the full pattern, consider adding a placeholder COPY line before it to make the intent obvious, e.g.:

Suggested change
RUN mise trust -a && mise install
COPY .mise.toml .
RUN mise trust -a && mise install

If the intent is only to show the mise installation steps (and leave tool configuration to the reader), dropping RUN mise trust -a && mise install entirely would avoid confusion — the Docker cookbook Dockerfile omits it for exactly this reason.

Fix in Claude Code

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 9, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.5 x -- echo 17.5 ± 0.6 16.5 22.2 1.00
mise x -- echo 18.0 ± 0.5 16.9 20.3 1.03 ± 0.04

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.5 env 17.7 ± 0.8 16.3 22.0 1.00 ± 0.05
mise env 17.7 ± 0.5 16.5 22.6 1.00

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.5 hook-env 17.6 ± 0.5 16.6 19.8 1.00
mise hook-env 18.1 ± 0.5 17.0 20.3 1.03 ± 0.04

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.3.5 ls 18.1 ± 0.5 17.0 22.0 1.00
mise ls 18.8 ± 0.9 17.4 33.0 1.04 ± 0.06

xtasks/test/perf

Command mise-2026.3.5 mise Variance
install (cached) 114ms 116ms -1%
ls (cached) 67ms 67ms +0%
bin-paths (cached) 70ms 70ms +0%
task-ls (cached) 709ms 697ms +1%

@jdx jdx merged commit 23dd0ad into main Mar 9, 2026
38 checks passed
@jdx jdx deleted the docs/remove-docker-image-refs branch March 9, 2026 06:20
jdx pushed a commit that referenced this pull request Mar 9, 2026
### 🐛 Bug Fixes

- **(activate)** reorder shims to front of PATH on re-source in fish by
@jdx in [#8534](#8534)
- **(backend)** strip mise shims from dependency_env PATH to prevent
fork bomb by @pose in [#8475](#8475)
- **(github)** resolve "latest" version correctly via GitHub API by @jdx
in [#8532](#8532)
- **(lock)** set env tags and clarify lockfile docs by @jdx in
[#8519](#8519)
- **(lock)** use separate mise.<env>.lock files instead of env tags by
@jdx in [#8523](#8523)
- **(task)** include args in task output prefix and truncate long
prefixes by @jdx in [#8533](#8533)
- **(task)** only include args in task prefix when disambiguating
duplicates by @jdx in [#8536](#8536)
- **(test)** pin goreleaser version in attestation e2e test by @jdx in
[#8518](#8518)
- **(windows)** env._.source needs to run bash.exe on Windows (fix
#6513) by @pjeby in [#8520](#8520)
- handle locked .exe shims on Windows during reshim by @davireis in
[#8517](#8517)

### 🚜 Refactor

- **(prepare)** remove touch_outputs and update docs to reflect blake3
hashing by @jdx in [#8535](#8535)

### 📚 Documentation

- **(docker)** replace jdxcode/mise image with curl install, update to
debian:13-slim by @jdx in [#8526](#8526)
- fix "gzip: stdin is encrypted" error in shell tricks cookbook by
@pjeby in [#8512](#8512)

### 📦 Registry

- add tigerbeetle
([github:tigerbeetle/tigerbeetle](https://github.com/tigerbeetle/tigerbeetle))
by @risu729 in [#8514](#8514)

### New Contributors

- @pjeby made their first contribution in
[#8520](#8520)
- @davireis made their first contribution in
[#8517](#8517)
- @Aurorxa made their first contribution in
[#8511](#8511)

## 📦 Aqua Registry Updates

#### New Packages (6)

-
[`betterleaks/betterleaks`](https://github.com/betterleaks/betterleaks)
- [`majorcontext/moat`](https://github.com/majorcontext/moat)
- [`princjef/gomarkdoc`](https://github.com/princjef/gomarkdoc)
- [`remko/age-plugin-se`](https://github.com/remko/age-plugin-se)
- [`sudorandom/fauxrpc`](https://github.com/sudorandom/fauxrpc)
- [`swanysimon/mdlint`](https://github.com/swanysimon/mdlint)

#### Updated Packages (1)

- [`moonrepo/moon`](https://github.com/moonrepo/moon)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant