Skip to content

[Feature]: Instance (aka host, local) volumes (aka mounts) #1894

@un-def

Description

@un-def

Problem

Currently, the only way to share any data between runs is to use volumes, which are supported only by a small number of backends and not supported on SSH fleets at all.

If it was possible to specify an arbitrary bind mount in the run configuration — /path/on/fleet/instance:/path/inside/run/container (akin Docker -v bind mounts), it would be possible to at least partially work around this limitation.

Possible use cases:

  • Cache shared between runs (any runs, not necessarily the same run configuration), e.g., ~/.cache/huggingface, ~/.cache/pip. As it’s acceptable for the software cache to be empty, it’s okay if the host directory doesn’t exist or contains irrelevant data.
  • Persistent(-ish) storage. If the user is sure that nobody reuses their fleet instance, then they can use the instance mount point as some sort of persistent storage. The lifetime of such storage is bound to the lifetime of the instance.
  • Network mounts that are not yet supported by dstack (NFS, SMB, etc.) on SSH fleet instances.

Solution

No response

Workaround

No response

Would you like to help us implement this feature by sending a PR?

Yes

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions