Skip to content

fix: preserve ssh:// URL scheme when resolving Dockerfile path#13669

Merged
glours merged 1 commit intodocker:mainfrom
ssam18:fix/ssh-url-remote-context
Mar 27, 2026
Merged

fix: preserve ssh:// URL scheme when resolving Dockerfile path#13669
glours merged 1 commit intodocker:mainfrom
ssam18:fix/ssh-url-remote-context

Conversation

@ssam18
Copy link
Copy Markdown
Contributor

@ssam18 ssam18 commented Mar 25, 2026

When using an ssh:// URL as build context, filepath.Join was silently collapsing the double slash into a single one (ssh://ssh:/), making buildx unable to locate the Dockerfile. The fix returns the Dockerfile name as-is for any context containing a URL scheme (://), since buildx already knows how to resolve it relative to the remote context - the same way we already handle git:// and https:// contexts. Fix for the bug #13668.

@ssam18 ssam18 requested a review from a team as a code owner March 25, 2026 22:06
@ssam18 ssam18 requested review from glours and ndeloof March 25, 2026 22:06
filepath.Join cleans its arguments, collapsing the double slash in
ssh:// URLs to a single slash (ssh:/), corrupting the scheme before
it reaches buildx. Return the dockerfile as-is for any URL-schemed
context, matching the existing behaviour for git:// and https:// URLs.

Fixes the issue docker#13668

Signed-off-by: Samaresh Kumar Singh <ssam3003@gmail.com>
@ssam18 ssam18 force-pushed the fix/ssh-url-remote-context branch from 6672b7a to 0c5a3e3 Compare March 25, 2026 22:07
@glours
Copy link
Copy Markdown
Contributor

glours commented Mar 26, 2026

/review

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Contributor

@glours glours left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@glours glours merged commit 612b8c5 into docker:main Mar 27, 2026
41 checks passed
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Apr 10, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/compose](https://github.com/docker/compose) | patch | `v5.1.1` → `v5.1.2` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>docker/compose (docker/compose)</summary>

### [`v5.1.2`](https://github.com/docker/compose/releases/tag/v5.1.2)

[Compare Source](docker/compose@v5.1.1...v5.1.2)

#### What's Changed

##### 🐛 Fixes

- Fix TTY timer rendering when duration length changes by [@&#8203;MaybeSam05](https://github.com/MaybeSam05) in [#&#8203;13634](docker/compose#13634)
- Fix up attach filtering by [@&#8203;false200](https://github.com/false200) in [#&#8203;13664](docker/compose#13664)
- Preserve ssh:// URL scheme when resolving Dockerfile path by [@&#8203;ssam18](https://github.com/ssam18) in [#&#8203;13669](docker/compose#13669)
- Initialize and pass envFiles map in processExtends by [@&#8203;Mohamed-Moumni](https://github.com/Mohamed-Moumni) in [#&#8203;13678](docker/compose#13678)
- Fix TestRunHook\_ConsoleSize on macOS by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13686](docker/compose#13686)
- Restore post-connect fallback for multi-network stacks on API < 1.44 by [@&#8203;jotka](https://github.com/jotka) in [#&#8203;13629](docker/compose#13629)
- Publish: return api.ErrCanceled when user declines interactive prompts by [@&#8203;ishwar170695](https://github.com/ishwar170695) in [#&#8203;13674](docker/compose#13674)
- Return error on non-ErrNotExist stat failures in Tar.Sync() by [@&#8203;Lidang-Jiang](https://github.com/Lidang-Jiang) in [#&#8203;13684](docker/compose#13684)

##### 🔧  Internal

- Refactor: thread context through publish sensitive data check by [@&#8203;ishwar170695](https://github.com/ishwar170695) in [#&#8203;13653](docker/compose#13653)
- Add AI-powered MR review workflow via `docker/cagent-action` by [@&#8203;glours](https://github.com/glours) in [#&#8203;13659](docker/compose#13659)
- Update `cagent-action` to latest (with better permissions) by [@&#8203;derekmisler](https://github.com/derekmisler) in [#&#8203;13665](docker/compose#13665)
- Pin GitHub Actions to commit SHA, remove pr-review workflow by [@&#8203;glours](https://github.com/glours) in [#&#8203;13662](docker/compose#13662)
- Exclude hook\_test.go from Windows builds and propagate ExecStart error in runWaitExec by [@&#8203;pawannn](https://github.com/pawannn) in [#&#8203;13683](docker/compose#13683)
- Skip MR review workflow for Dependabot MRs by [@&#8203;glours](https://github.com/glours) in [#&#8203;13679](docker/compose#13679)
- Use negotiated API version for network setup by [@&#8203;glours](https://github.com/glours) in [#&#8203;13690](docker/compose#13690)
- Fix mixed assertion libraries in tests by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13689](docker/compose#13689)
- Test: use random host port for dind TLS build test by [@&#8203;ricardobranco777](https://github.com/ricardobranco777) in [#&#8203;13630](docker/compose#13630)
- Remove direct dependency on `docker/docker` by [@&#8203;glours](https://github.com/glours) in [#&#8203;13706](docker/compose#13706)

##### ⚙️ Dependencies

- Bump github.com/containerd/platforms from `1.0.0-rc.2` to `1.0.0-rc.3` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13657](docker/compose#13657)
- Bump golangci-lint to `v2.11.3` and configure CLAUDE to use it on change by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13656](docker/compose#13656)
- Bump google.golang.org/grpc from `1.78.0` to `1.79.3` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13642](docker/compose#13642)
- Bump github.com/moby/patternmatcher from `0.6.0` to `0.6.1` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13667](docker/compose#13667)
- Bump go.opentelemetry.io/otel/sdk from `1.39.0` to `1.42.0` by [@&#8203;glours](https://github.com/glours) in [#&#8203;13663](docker/compose#13663)
- Bump github.com/docker/cli from `29.2.1+incompatible` to `29.3.1+incompatible` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13670](docker/compose#13670)
- Bump github.com/hashicorp/go-version from `1.8.0` to `1.9.0` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13692](docker/compose#13692)
- Bump github.com/docker/buildx `v0.33.0`, buildkit `v0.29.0` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13693](docker/compose#13693)
- Bump google.golang.org/grpc from `1.79.3` to `1.80.0` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13697](docker/compose#13697)
- Bump github.com/containerd/platforms from `1.0.0-rc.3` to `1.0.0-rc.4` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13696](docker/compose#13696)
- Bump github.com/moby/moby/client `v0.4.0`, moby/api `v1.54.1` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13708](docker/compose#13708)
- Bump github.com/docker/cli `v29.4.0` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13707](docker/compose#13707)
- Bump compose-go to version `v2.10.2` by [@&#8203;glours](https://github.com/glours) in [#&#8203;13705](docker/compose#13705)
- Bump to Go `1.25.9` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13720](docker/compose#13720)

#### New Contributors

- [@&#8203;MaybeSam05](https://github.com/MaybeSam05) made their first contribution in [#&#8203;13634](docker/compose#13634)
- [@&#8203;ishwar170695](https://github.com/ishwar170695) made their first contribution in [#&#8203;13653](docker/compose#13653)
- [@&#8203;derekmisler](https://github.com/derekmisler) made their first contribution in [#&#8203;13665](docker/compose#13665)
- [@&#8203;false200](https://github.com/false200) made their first contribution in [#&#8203;13664](docker/compose#13664)
- [@&#8203;ssam18](https://github.com/ssam18) made their first contribution in [#&#8203;13669](docker/compose#13669)
- [@&#8203;Mohamed-Moumni](https://github.com/Mohamed-Moumni) made their first contribution in [#&#8203;13678](docker/compose#13678)
- [@&#8203;pawannn](https://github.com/pawannn) made their first contribution in [#&#8203;13683](docker/compose#13683)
- [@&#8203;jotka](https://github.com/jotka) made their first contribution in [#&#8203;13629](docker/compose#13629)
- [@&#8203;Lidang-Jiang](https://github.com/Lidang-Jiang) made their first contribution in [#&#8203;13684](docker/compose#13684)

**Full Changelog**: <docker/compose@v5.1.1...v5.1.2>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuOCIsInVwZGF0ZWRJblZlciI6IjQzLjExMC44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6cGF0Y2giXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants