docker 中针对 macOS 中卷的相对路径绑定确实失败

Bur*_*urg 5 macos path volumes docker docker-compose

我正在使用 docker-compose 并且我想创建一个相对的双路径绑定。

Folder structure and path at the host machine:
/Users/username/Documents/Repos/docker-gulp-template/bla
docker-gulp-template
  Dockerfile
  docker-compose.yml
  Bla (Folder)

Run Code Online (Sandbox Code Playgroud)
Path structure inside the container:

/usr/src/html/bla

Run Code Online (Sandbox Code Playgroud)
version: '3'
services:
  bla:
    command: /bin/bash    
    stdin_open: true
    #tty: true
    container_name: docker-gulp-template
    #restart: always
    build: .
    ports:
      - '80:3000'
    volumes:
      - "/bla:/usr/src/html/bla"
Run Code Online (Sandbox Code Playgroud)

这确实会导致错误。

ERROR: for docker-gulp-template  Cannot start service bla: b'Mounts denied: \r\nThe path /bla\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'
Run Code Online (Sandbox Code Playgroud)
    volumes:
      - ".:/usr/src/html/bla"
Run Code Online (Sandbox Code Playgroud)

这个确实有效。

我确实找到了这个线程: Docker: Mounts denied。路径......不是从 OS X 共享的,也不为 Docker 所知

但它根本没有帮助我。我确实尝试将我的存储库文件夹添加到 docker 设置的文件共享选项卡,但它不允许我添加文件夹,因为它已经在 /Users 组中。

路径是否与 docker-compose/docker 文件相关?

有人知道问题是什么吗?我真的很困惑。

提前致谢

Ond*_*ček 4

您可以使用相对路径,在您的情况下它是

volumes:
  - "./Bla:/usr/src/html/bla"
Run Code Online (Sandbox Code Playgroud)