2016-07-11 2 views
2

У меня есть следующая docker-compose.yml:ОШИБКА: для приложения нет такого устройства

version: '2' 

services: 
    app: 
    build: ./app 
    container_name: myapp 
    volumes: 
     #- "../app:/root/www/myapp:rw" 
     - myapp:/root/www/myapp:rw 

volumes: 
    myapp: 
    #driver: local 
    driver_opts: 
     o: uid=500,gid=500 
     device: ../app 

Я пытаюсь разделить мою папку хоста в гостевом контейнер с именем тома. У меня есть следующее сообщение об ошибке?

ERROR: for app no such device 
ERROR: Encountered errors while bringing up the project. 

Что пошло не так?

+0

Я не знаю, почему это происходит, но связывают монтирует, к сожалению, не поддерживает UID и GID в любом случае ... К сожалению, вы застряли с идентификатором хоста или текущая идентификационная ошибка (если вы находитесь на OS X). –

+0

Что делать, если я: 1.) Привязать хост-каталог к ​​постоянному контейнеру. 2.) Внутри этого контейнера эта папка будет привязана к символу другой командой 'ln -s'. 3.) Эта символическая папка будет иметь именованный том, разделяемый между этим постоянным и контейнером 'app', и теперь я могу определить' uid' для этого именованного тома? – Lanti

+0

Пробовал, не работал. – Lanti

ответ

0

Зачем вам нужен driver_opts здесь. Это вариант сети.

Я думаю, вы должны попробовать:

version: '2' 

services: 
    app: 
    build: ./app 
    container_name: myapp 
    volumes: 
     - "myapp:/root/www/myapp" 

volumes: 
    myapp: 
+0

Есть 'driver_opts' для томов и сети в docker-compose: https://docs.docker.com/compose/compose-file/#/driver-opts и https://docs.docker.com/compose/ compose-file/#/driver-opts-1 Также существует флаг '$ docker volume create -opt' (который используется командой docker-compose): https://docs.docker.com/engine/reference/commandline/volume_create/#/driver-specific-options Было бы довольно аккуратно определять uid (и, возможно, gid), как предлагает документ, но на данный момент этого было бы достаточно, если бы общий объем хоста работал. – Lanti

+0

Моя версия Docker - 1.11.2. Документ командной строки - 1.12. Может, так оно и есть? Изменить: Нет, согласно этому документу, его также следует поддерживать в 1.11: https://docs.docker.com/v1.11/engine/reference/commandline/volume_create/ – Lanti

+0

Ваше решение, позволяющее определить том из гостья? Я попробовал ваш, предоставив мне это сообщение об ошибке: «ERROR: In file» /docker-compose.yml, том «myapp» должен быть сопоставлением, а не строкой. « – Lanti

Смежные вопросы