infer unix:// prefix for path-like DOCKER_HOST values #6007
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change improves the handling of DOCKER_HOST by automatically inferring a "unix://" prefix when the host string starts with "/", "./", or "../", indicating a unix socket path. Previously, these values were incorrectly interpreted as TCP addresses, leading to confusing error messages.
- What I did
Improved the parsing logic of DOCKER_HOST to detect when a value looks like a path and automatically treat it as a Unix socket.
- How I did it
Modified parseDockerDaemonHost() to use the "unix://" protocol for addr strings starting with "/", "./", or ".", where no protocol is specified. Addresses without protocol prefixes that do not resemble a path are given the "tcp://" protocol.
- How to verify it
Compare the output of running docker version with DOCKER_HOST set to "/invalid.sock":
After this change, the error message shows that the host is interpreted as a unix socket.
- Human readable description for the release notes
- A picture of a cute animal (not mandatory but encouraged)
Fixes #5846