Привязка относительного пути в докере для томов в macOS не работает

Я использую 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: монтирование запрещено. Пути ... не используются совместно с OS X и неизвестны Docker

но мне это совсем не помогло. Я попытался добавить свою папку репозитория на вкладку общего доступа к файлам настроек докера, но это не позволяет мне добавить папку, потому что она уже находится внутри группы /Users.

Является ли путь относительным из файла docker-compose/docker?

Кто-нибудь понял, в чем проблема? Я действительно смущен.

заранее спасибо


person Burg    schedule 23.01.2019    source источник
comment
Используете ли вы последнюю версию Docker для Mac?   -  person Ondřej Hlaváček    schedule 23.01.2019
comment
Да. Ошибка заключалась в отсутствии точки перед путем.   -  person Burg    schedule 24.01.2019


Ответы (2)


Вы можете использовать относительные пути, в вашем случае это будет

volumes:
  - "./Bla:/usr/src/html/bla"
person Ondřej Hlaváček    schedule 23.01.2019
comment
Большое спасибо. Этот ответ был очень полезным. Не знал, что я должен использовать . до. - person Burg; 24.01.2019
comment
@Burg Я не видел в документах, что вы должны. похоже, это нужно, чтобы отличать от томов. - person Alexei Martianov; 03.12.2019
comment
это работает с кавычками, мне не хватало кавычек, и без них это не работает, но абсолютные пути, похоже, работают без комментариев. я использую версию 3.8 - person Bryan A; 28.07.2020

Я думаю, что нашел решение своей проблемы.

Чтобы выполнить двустороннюю привязку, похоже, вам нужно использовать:

$PWD

Внутри пути к хосту.

В моем случае:

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

После этого он работает. Является ли это хорошим решением или создает какие-то проблемы, о которых я не знаю?

person Burg    schedule 23.01.2019
comment
все нормально. $PWD заменяется на полный путь, а не относительный. мне кажется, теперь нельзя использовать относительные пути... - person Alexei Martianov; 03.12.2019