[PR #51] [MERGED] fix(mounts): translate sibling-container bind sources to host paths #51

Closed
opened 2026-10-15 12:51:38 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/LXC2Docker/pull/51
Author: @JBailes
Created: 6/4/2026
Status: ✅ Merged
Merged: 6/4/2026
Merged by: @JBailes

Base: main ← Head: fix/sibling-mount-path-translation


📝 Commits (2)

  • 65f357e fix(mounts): translate sibling-container bind sources to host paths
  • 02c8903 test(mounts): cover sibling-container bind source translation

📊 Changes

2 files changed (+109 additions, -0 deletions)

View changed files

📝 internal/api/containers.go (+48 -0)
➕ internal/api/sibling_mount_test.go (+61 -0)

📄 Description

When a managed container launches sibling containers via the Docker socket (Games-on-Whales Wolf does this for every app/compositor it streams) and can't introspect its own container, it passes one of its own in-container paths as a bind source. The runtime took that literally as a host path — which doesn't exist — so lxc-start aborted the sibling. Result: Wolf streamed a black screen because the app/compositor container never started (Failed to mount "/etc/wolf/<session>/<app>" ... No such file or directory → ABORTING).

Translate a bind source through the parent's mount mapping: when the literal source is missing on the host but falls under another managed container's mount destination, rewrite to that container's host source + remainder (only if the result exists). Valid host binds are untouched. Diagnosed live on a SmoothNAS appliance; the real host path (/mnt/<pool>/.plugins/wolf/state/...) exists, only the in-container path was passed through.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/LXC2Docker/pull/51 **Author:** [@JBailes](https://github.com/JBailes) **Created:** 6/4/2026 **Status:** ✅ Merged **Merged:** 6/4/2026 **Merged by:** [@JBailes](https://github.com/JBailes) **Base:** `main` ← **Head:** `fix/sibling-mount-path-translation` --- ### 📝 Commits (2) - [`65f357e`](https://github.com/games-on-whales/LXC2Docker/commit/65f357e0e1a1fa0cf1fe832b28f8c96aa4d2f366) fix(mounts): translate sibling-container bind sources to host paths - [`02c8903`](https://github.com/games-on-whales/LXC2Docker/commit/02c89038d564007b84c8f4a9ed7df5df6e2ae3ed) test(mounts): cover sibling-container bind source translation ### 📊 Changes **2 files changed** (+109 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `internal/api/containers.go` (+48 -0) ➕ `internal/api/sibling_mount_test.go` (+61 -0) </details> ### 📄 Description When a managed container launches sibling containers via the Docker socket (Games-on-Whales Wolf does this for every app/compositor it streams) and can't introspect its own container, it passes one of its **own in-container paths** as a bind source. The runtime took that literally as a host path — which doesn't exist — so `lxc-start` aborted the sibling. Result: Wolf streamed a **black screen** because the app/compositor container never started (`Failed to mount "/etc/wolf/<session>/<app>" ... No such file or directory → ABORTING`). Translate a bind source through the parent's mount mapping: when the literal source is missing on the host but falls under another managed container's mount **destination**, rewrite to that container's host **source** + remainder (only if the result exists). Valid host binds are untouched. Diagnosed live on a SmoothNAS appliance; the real host path (`/mnt/<pool>/.plugins/wolf/state/...`) exists, only the in-container path was passed through. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 12:51:38 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/LXC2Docker#51
No description provided.