`./install/build_offline_bundle_docker.sh` on Windows died with "No Docker
socket at /var/run/docker.sock. Set NOMAD_DOCKER_SOCKET if yours lives
elsewhere." — advice that cannot be followed, because there is no socket path
to point at. Docker Desktop is reached over a named pipe.
The docs claimed "Linux, macOS and Windows build machines all produce the same
bundle", which is not true of Windows' native shells and is what sent the user
down this path.
Relaxing the `-S` guard would not fix it. The build starts further containers
whose bind mounts are resolved by the host daemon, and MSYS rewrites the
Unix-looking paths in every -v argument — so the socket mount, the repo mount
and the output mount each need different treatment. Dropping the check just
moves the failure somewhere less obvious.
So: detect MSYS/MinGW/Cygwin and fail immediately with the actual remedy (build
from WSL2, Linux or macOS), and correct the Windows claim in the docs. Real
Git Bash support would mean reworking mount-path construction and is a separate
piece of work.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A normal install needs the internet: the installer fetches Docker from
get.docker.com, host packages from APT, container images from registries,
and its own helper scripts from GitHub. That leaves no way to provision a
machine that has no connectivity, or to rebuild one after connectivity is
gone.
Artifact mode closes that bootstrap gap without adding a second installer.
install_nomad.sh gains --artifacts <dir> (and NOMAD_ARTIFACT_PATH); with no
such argument it behaves exactly as before. When a bundle is selected every
dependency comes from that bundle and the installer is fail-closed: it
never falls back to the network, and a missing input is an error.
build_offline_bundle.sh prepares a bundle on a connected machine from a
source checkout, resolving the package closure and discovering images from
management_compose.yaml rather than hardcoding them, so the bundle tracks
the compose file. build_offline_bundle_docker.sh wraps it so the build only
needs Docker on the host. verify_offline_bundle.sh inspects a bundle before
transfer; capture_installed_images.sh exports images from a populated host.
APT is isolated to a bundle-local file: repository so package installation
cannot resolve through a configured remote, image archives are loaded from
disk, and Compose starts with pulls disabled via a generated override that
leaves the canonical management compose file untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>