You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This feature request provides an alternative to #5408 (the devbox backend) for dealing with packages that have complicated build processes and that are not available on other mise backends.
A limitation of the proposed devbox backend, is that it does not work on Windows. Docker can work on Windows (with Docker for Windows).
A docker backend would enable mise users to "install" packages from DockerHub (or potentially other configurable registries) and run them using docker container.
As a mise-backend, it would be possible to add dnsmasq using something like:
[tools]
"docker:dockurr/dnsmasq" = "2.91"
The backend might invoke the docker cli or podman cli, or use docker-related crates directly. Mise shims could call into the docker/podman cli to run the desired program.
With mise it could be executed as:
# mise could create a shim that performs docker container run
dnsmasq --version
# mise could determine that dnsmasq uses the docker backend and then perform docker container run
mise x -- dnsmasq --version
Personally, if I could choose between a docker backend or a devbox backend, then I would choose the devbox backend for its speed and simplicity, even if this means sacrificing Windows support.
Docker can come with lots of baggage (installation, Windows terms of use, etc), can become clumsy to use (--entrypoint or command args) and may require lots of configuration options (volumes, ports, environment variables, privileged, workdir etc) to make it work just right.
See for example how dnsmasq can be configured via docker (and then by extension by some kind of expanded mise tool configuration object:
# complex config
docker run -it --rm --name dnsmasq -p 53:53/udp -p 53:53/tcp -e "DNS1=1.0.0.1" -e "DNS2=1.1.1.1" --cap-add=NET_ADMIN dockurr/dnsmasq
# basic config just to run dnsmasq --version
docker container run --rm --entrypoint dnsmasq "dockurr/dnsmasq:2.91" --version
However, with some thought, one might be able to find good enough defaults for the general use case of developer tooling. Some packages might even be "blessed" by mise, in that they have custom pre-defined Dockerfiles that are potentially curated/managed by the mise community for use with mise projects.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This feature request provides an alternative to #5408 (the devbox backend) for dealing with packages that have complicated build processes and that are not available on other mise backends.
A limitation of the proposed
devboxbackend, is that it does not work on Windows. Docker can work on Windows (with Docker for Windows).A
dockerbackend would enable mise users to "install" packages from DockerHub (or potentially other configurable registries) and run them usingdocker container.As a mise-backend, it would be possible to add dnsmasq using something like:
The backend might invoke the docker cli or podman cli, or use docker-related crates directly. Mise shims could call into the docker/podman cli to run the desired program.
With mise it could be executed as:
Personally, if I could choose between a
dockerbackend or adevboxbackend, then I would choose thedevboxbackend for its speed and simplicity, even if this means sacrificing Windows support.Docker can come with lots of baggage (installation, Windows terms of use, etc), can become clumsy to use (--entrypoint or command args) and may require lots of configuration options (volumes, ports, environment variables, privileged, workdir etc) to make it work just right.
See for example how dnsmasq can be configured via docker (and then by extension by some kind of expanded mise tool configuration object:
However, with some thought, one might be able to find good enough defaults for the general use case of developer tooling. Some packages might even be "blessed" by mise, in that they have custom pre-defined Dockerfiles that are potentially curated/managed by the mise community for use with mise projects.
Beta Was this translation helpful? Give feedback.
All reactions