【问题标题】:Relative path binding in docker for volumes in macOS does failmacOS 中卷的 docker 中的相对路径绑定确实失败
【发布时间】:2019-06-16 18:34:10
【问题描述】:

我正在使用 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)

Path structure inside the container:

/usr/src/html/bla

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"

这确实会导致错误。

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.'
    volumes:
      - ".:/usr/src/html/bla"

这个确实有效。

我确实找到了这个帖子: Docker: Mounts denied. The paths ... are not shared from OS X and are not known to Docker

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

相对于 docker-compose/docker 文件的路径吗?

有人知道问题出在哪里吗?我真的很困惑。

提前致谢

【问题讨论】:

  • 你使用最新的 Docker for Mac 吗?
  • 是的,我愿意。错误是路径前面缺少一个点。

标签: macos docker path docker-compose volumes


【解决方案1】:

我想我确实找到了解决自己问题的方法。

要进行双向绑定,您必须使用:

$PWD

在主机路径内。

就我而言:

  volumes:
      - "$PWD/bla:/usr/src/html/bla"

之后它就可以工作了。这是一个好的解决方案还是会产生我不知道的任何问题?

【讨论】:

  • 没关系。 $PWD 扩展为 完整 路径,而不是相对路径。在我看来,现在不能使用相对路径...
  • @AlexeiMartianov 相对于哪个目录?拥有当前目录的绝对路径($pwd 返回),然后您可以指定相对于它的路径。
【解决方案2】:

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

volumes:
  - "./Bla:/usr/src/html/bla"

【讨论】:

  • 非常感谢。这个答案非常有帮助。不知道我必须使用 .之前。
  • @Burg 我没有在文档中看到你应该看到的。看起来需要与体积区分开来。
  • 这适用于引号,我缺少引号,没有它们它就无法工作,但绝对路径似乎没有 cmets 工作。我使用版本3.8
猜你喜欢
  • 2018-08-07
  • 2018-02-02
  • 1970-01-01
  • 2011-05-09
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多