Fix incorrect 'Linux unaffected' claim in bind-mount caveat
The previous note scoped the single-file bind-mount staleness bug to Docker Desktop only. It actually affects ALL platforms including native Linux: Docker bind-mounts the inode, not the path. Editors that do atomic save (vim, nvim, VS Code, sed -i) create a new inode via rename(), leaving the container pinned to the old unlinked one. This is a kernel limitation (moby/moby#15793, open since 2015, unfixable). Rewrite both the README.md caveat and the docker-compose.yml inline note to describe the real mechanism (inode replacement), name the affected editors, note that append-only writes are safe, and link to the upstream issue.
This commit is contained in:
+6
-4
@@ -65,10 +65,12 @@ services:
|
||||
# The image ships sensible defaults (history tuning, prefix-search on
|
||||
# Up/Down arrows, fzf/zoxide integration). Uncomment to use your own:
|
||||
#
|
||||
# NOTE: On Docker Desktop (macOS/Windows), single-file bind-mounts can
|
||||
# silently stop propagating host edits — the file gets materialized onto
|
||||
# the VM disk. If host changes don't appear in the container, see the
|
||||
# "Shell defaults" section in README.md. Linux hosts are unaffected.
|
||||
# NOTE: Single-file bind-mounts break when editors use atomic save
|
||||
# (vim, VS Code, sed -i write a temp file then rename() over the
|
||||
# original, creating a new inode the container never sees). This is a
|
||||
# kernel limitation, not Docker-specific. If host edits stop appearing
|
||||
# in the container, mount the parent directory instead — see the
|
||||
# "Shell defaults" section in README.md.
|
||||
# - ~/.bash_aliases:/home/developer/.bash_aliases:ro
|
||||
# - ~/.inputrc:/home/developer/.inputrc:ro
|
||||
|
||||
|
||||
Reference in New Issue
Block a user