Докер сочиняет монтирование пустых томов - PullRequest
0 голосов
/ 29 мая 2018

Ожидаемое поведение

docker-compose up -d должно правильно монтировать тома

Фактическое поведение

Внезапно (два дня назад все работало отлично, ничего не установил и не обновил ОС), тома больше не монтируются.Никакого сообщения об ошибке не появляется, только журналы контейнера, сообщающие, что команда не может найти файл (потому что «пустой» том переопределяет скопированные файлы контейнера).

Если я удаляю том ./service:/home/node/api, тоДокер использует файлы в контейнере, и все работает нормально.

Информация

Уже пытался удалить докер-машину из virtualbox и создать ее заново, удалив все тома / образы и контейнеры.Даже переустанавливает Docker Toolbox, но проблема сохраняется.

Все выполняется с правами администратора.

Дополнительная информация

docker-compose config вывод

services:
  api:
    build:
      context: C:\users\fede\documents\test\service
    container_name: api
    ports:
    - 3000:3000/tcp
    volumes:
    - /c/users/fede/documents/test/service:/home/node/api:rw
version: '3.0'

$ docker inspect api вывод: https://pastebin.com/1zQ3vjFi

Файлы

Я упростил пример приложения, чтобы ускорить отладку, вы можете увидеть его здесь: https://github.com/Frondor/simple-node-app

Я довольно новичок в Docker, но если есть что-то еще, что я могу предоставить, чтобы снова начать использовать Docker локально, просто спросите в комментариях.Но, честно говоря, это начало происходить изо дня в день без каких-либо изменений в системе.Антивирус не задействован.

1 Ответ

0 голосов
/ 29 мая 2018

Для дальнейшего использования я наконец нашел причину, по которой это начало происходить «внезапно».Это связано с командной строкой и относительными путями томов, не учитывающих прописные буквы.

This

Заметили тот же путь, но отображаются по-разному?Это продукт моей неопытности.

Первый работает отлично, и виртуальная машина без проблем отображает рабочий каталог на общий том.Я предполагаю, что это связано с C:\Users\Fede с заглавными буквами, что не учитывает второй путь.

Таким образом, cd $HOME приводит меня к ~ (home) пути, как показано здесь:

enter image description here

И теперь путь к терминалу правильно настроен для правильного сопоставления тома хоста.

$ docker-compose config

services:
  api:
    build:
      context: C:\Users\Fede\documents\test\service
    container_name: api
    ports:
    - 3000:3000/tcp
    volumes:
    - /c/Users/Fede/documents/test/service:/home/node/api:rw
version: '3.0'
...