Относительная привязка пути в докере для томов в macOS не работает - PullRequest
0 голосов
/ 23 января 2019

Я использую 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"

Этот действительно работает.

Я нашел эту тему: Докер: монтирование запрещено. Пути ... не используются совместно с OS X и не известны Docker

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 23 января 2019

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

volumes:
  - "./Bla:/usr/src/html/bla"
0 голосов
/ 23 января 2019

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

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

$PWD

Внутри hostpath.

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

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

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

...