ну, все написано - когда монтируете, то можете только файл на файл или каталог на каталог монтировать. Иногда бывает, что если в volume слева указан файл, который на хосте не существует, то докер сходит с ума. И создает вместо него каталог с правами root:root.
Какое может быть решение? Для начала прекратить пользоваться упрощенным синтаксисом -v в docker run или volumes в docker-compose, а использовать
расширенный синтаксис mount (который с
--mount
). Тогда, если на хосте нет нужного файла, то докер контейнер ТУПО не стартанет и будет внятное сообщение об ошибке вроде:
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /home/local/georg.gaal/formulas.
See 'docker run --help'.
При этом Вы еще бонусом и получаете то, что докер не будет пытаться изменить права на каталог. А создаваемые внутри файлы будут с теми правами, которые установлены внутри контейнера - сплошная лепота. Минус в том, что все необходимые каталоги и файлы для запуска контейнера надо создавать заранее. Т.е. уже коллегам надо отдавать докер-компоуз файл плюс bash-скрипт