-
-
Notifications
You must be signed in to change notification settings - Fork 433
Description
Feature Description
Currently the installer's "Pre-Requisites" section requires Docker or Podman as the container platform:
✘ Docker/Podman installed
✘ Docker Compose v2 installed
✘ User added to the docker group
✘ Docker daemon is running
- The underlying container runtime in both platforms is Containerd
- There are alternative tools like Nerdctl made by Containerd to use instead of installing those!
- Nerdctl already supports all the Docker CLI commands (including
docker compose) and can completely replace Docker.
Use-Case
By implementing this feature, WinBoat will become platform-agnostic instead of relying on Docker/Podman, and would cover a wider variety of use-cases and user-bases like:
- People who don't want to install Docker on their systems.
- Those using Containerd engine directly with the help of Nerdctl to run and manage containers, build Docker images, work with
docker-composefiles, etc.
Proposed Implementation
As Nerdctl already supports all Docker CLI commands, IMO this feature could simply be added by either of the following methods:
-
Adding Nerdctl as a 3rd option in the drop-down menu beside Docker and Podman:
-- Check the output ofnerdctl info, if it works then it's configured right and Containerd service is running.
-- Additionally checknerdctl run&&nerdctl build(just likedockerequivalents) to see if the CNI plugins and BuildKit are also installed. -
Providing a way to bypass the "Pre-Requisites" Docker part through either:
-- An "Other/Misc/Containerd" option in the drop-down menu for "more advanced users", where further errors in the process is on the users to debug on their own!
-- Support setting analiasor asymlinkfor thedockercommand pointing tonerdctlbinary.
On my own system (Fedora Workstation 43 x64) I've set a global bash/zsh alias for docker command which points to nerdctl.
This can be achieved by adding the following line to the end of bashrc or zshrc file under your home directory (or in /etc/ for global use):
alias docker="nerdctl" (or "sudo nerdctl" if you haven't enabled the rootless mode like me).
This way I can use completely identical Docker commands like docker compose up -d, so no need to rewrite old automation scripts!
But with an alias the WinBoat installer still thinks that Docker is not installed, so I created a symlink for docker using:
sudo ln -s /usr/local/bin/nerdctl /usr/local/bin/docker
Which sort of worked, the WinBoat installer now thinks that Docker is installed but still the Docker Compose, Group, and Daemon parts are not green!
✔ Docker/Podman installed
✘ Docker Compose v2 installed
✘ User added to the docker group
✘ Docker daemon is running
Notice
- I have checked the issue tracker and verified that this Feature Request has not been proposed before.
- I would like to help out implementing this feature