← Features
Provisioning

The engine

Provisioning runs from an installer, where there is no terminal to answer a prompt. So every step is unattended, every step is named, and the run stops at the first failure. A report of six failures where there was one is a report nobody can act on.

Eleven steps, pinned by digest

  • ✓Acquire and verify. Five artefacts in five steps: the Alpine rootfs, the static Linux engine, the Windows CLI zip, and the Compose and Buildx plugins. Each checked against a digest recorded in this repository, not one served by the same host as the file.
  • ✓Inspect before touching WSL. The tarball's member list is read locally, so a bad archive is caught before a distribution exists.
  • ✓wsl --import freewilly … --version 2. The name is fixed and it is this tool's, so your own apt upgrade or unregister cannot take the engine with it.
  • ✓Install inside it with one non-interactive sh script under set -e: iptables and socat from apk, the binaries into /usr/local/bin, systemd=false.
  • ✓Place the Windows CLI, docker.exe, under %LOCALAPPDATA%\FreeWilly\bin, for the installer to add to PATH.
  • ✓Place the plugins. Compose and Buildx go where the CLI looks for one, so docker compose and docker buildx work from the install rather than from a second download.

Look before you download

--plan prints every pinned version, digest and path and reaches nothing at all. --acquire downloads and verifies and stops before WSL2 is touched. Both change nothing outside this tool's own directory.