The Wayback Machine - https://web.archive.org/web/20260428095537/https://github.com/docker/desktop-feedback/issues/264
Skip to content

Nested bind mounts broken on macOS arm64 since Docker Desktop 4.67.0Β #264

@HilSny

Description

@HilSny

Bug description

After upgrading from Docker Desktop 4.66.1 to 4.67.0, nested/overlapping bind mounts no longer work on macOS Apple Silicon. The child mount appears empty inside the container β€” it shows the host's empty placeholder directory rather than the overlaid content. Downgrading to 4.66.1 resolves the issue immediately.

Reproduction steps

  1. Create the following structure:
mkdir -p project/src/shared
echo "console.log('hello')" > project/src/index.js
mkdir -p _shared/utils
echo "module.exports = 'works'" > _shared/utils/index.js
  1. Create docker-compose.yml:
services:
  app:
    image: node:24-alpine
    working_dir: /app
    command: node -e "require('./src/shared/utils')"
    volumes:
      - ./project/src:/app/src
      - ./_shared:/app/src/shared
  1. Run docker compose up

Expected: The require succeeds because /app/src/shared contains the overlaid _shared content.

Actual: /app/src/shared is empty inside the container. The child mount is not overlaying the parent mount.

Volume declaration order (parent-first vs child-first) makes no difference. docker compose config and docker inspect both show the correct mount configuration, but the filesystem inside the container does not reflect the child overlay.

Workaround

Downgrade to Docker Desktop 4.66.1.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions