feat: Add custom folder mounts configuration#576
Conversation
| /** | ||
| * Validates a host path exists and is accessible | ||
| */ | ||
| export function validateHostPath(hostPath: string): { valid: boolean; error?: string } { |
There was a problem hiding this comment.
This is a very interesting way to handle errors/perform validation, and it differs quite a bit from how the rest of the codebase goes about it.
ComposePortEntry parses short form port mappings, you should check out how it handles this.
There was a problem hiding this comment.
Switched to throw-based validation matching ComposePortEntry's pattern. Error messages now include contextual values (e.g. Path must be absolute: 'foo/bar'). Tested all validation paths manually.
|
|
||
| for (const cmd of commands) { | ||
| try { | ||
| await execAsync(`docker exec WinBoat ${cmd}`); |
There was a problem hiding this comment.
This won't work with podman, you should use this.containerMgr.executableAlias instead.
There was a problem hiding this comment.
Replaced with this.containerMgr!.executableAlias. Verified on a fresh Podman install — symlinks created successfully and mount accessible in Windows at \host.lan\Data<name>.
Allow users to mount additional folders from the Linux filesystem into Windows, accessible via \host.lan\Data\<name>. Users can add, remove, and enable/disable mounts through the Configuration panel. - Add CustomVolumeMounts.vue component with folder browser - Add volumes.ts with path validation and compose utilities - Add CustomVolumeMount type to types.ts - Integrate custom mounts into Config view
- Switch validation to throw-based pattern matching ComposePortEntry convention, with contextual values in error messages - Replace hardcoded `docker exec` with `containerMgr.executableAlias` to support both Docker and Podman runtimes Tested manually on Podman: - Validation errors display correctly with input context - Custom mount symlinks created via `podman exec` - Mounted folder accessible in Windows at \\host.lan\Data\<name> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1597a33 to
6b504b0
Compare
|
Seems if you have "Shared Home Folder" and "Custom Folder Mounts" enabled. Only the home folder will appear. If I disabled the Shared Home Folder the custom folder mounts and can be located. |
Expose custom folder mounts through Dockur's Data2 share instead of Data. Keep the home share under Data and custom mounts under Data2 to avoid stale folders appearing inside the shared home path. AI-Assisted: OpenAI GPT-5.4 (xhigh)
|
Tested manually on both Docker and Podman. Docker:
Podman:
|
|
sorry to bother, is there any progress on this? having this feature would be very convenient... |
Summary
Add the ability for users to mount custom folders from the Linux host
filesystem into the Windows VM. Mounted folders appear in Windows at
\\host.lan\Data\<name>.Features:
Changes
CustomVolumeMounts.vue- New component for managing mountsvolumes.ts- Validation helpers and compose config utilitiestypes.ts- NewCustomVolumeMounttypeConfig.vue- Integration into settings pageconfig.ts/winboat.ts- Backend integrationTest Plan
\\host.lan\Data\<name>Closes #343
Closes #44