docs(docker): replace jdxcode/mise image with curl install, update to debian:13-slim#8526
docs(docker): replace jdxcode/mise image with curl install, update to debian:13-slim#8526
Conversation
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>
Summary of ChangesHello, 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 Highlights
Changelog
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
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.
| ENV PATH="/mise/shims:$PATH" | ||
| RUN curl https://mise.run | sh | ||
| RUN mise trust -a && mise install |
There was a problem hiding this comment.
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.
| 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 |
| 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 |
There was a problem hiding this comment.
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.
| root@75f179a190a1:/# echo "" > ~/.config/mise/config.toml | |
| root@75f179a190a1:/# echo "" > /mise/config.toml |
Greptile SummaryThis docs-only PR stops recommending the Key changes:
One minor clarity issue: the example Dockerfile in Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
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
Last reviewed commit: 527d674 |
- 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>
| 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 |
There was a problem hiding this comment.
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.:
| 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.
Hyperfine Performance
|
| 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% |
### 🐛 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)
Summary
jdxcode/miseDocker Hub image (intended for internal use only)curl https://mise.run | shinstallation patterndebian:12-slim/bookworm-slimtodebian:13-slim(GLIBC 2.41, required for mise binary compatibility)Test plan
docker build— both install mise and runmise --versionsuccessfully ondebian:13-slim🤖 Generated with Claude Code