Vagrant синхронизированные папки не чувствительны к регистру

10

Для нашего веб-стека мы переходим с Windows Server на CentOS. Для облегчения разработки мы используем Vagrant для локального запуска виртуальных машин CentOS. Мы используем функцию синхронизированных папок Vagrant, чтобы позволить разработчикам использовать свои любимые IDE на своем хост-компьютере, но мы обнаруживаем, что в этой настройке отсутствует одна ключевая функция: чувствительность к регистру файловой системы.

Синхронизированная папка внутри виртуальной машины, очевидно, приобретает свойства файловой системы хоста, поэтому, если я занимаюсь разработкой на компьютере с Windows или даже OSX, файловая система не чувствительна к регистру. Это большая проблема, так как наши производственные серверы будут работать на чистом CentOS, а его файловая система будет чувствительна к регистру.

Чувствительность к регистру - одна из главных причин, по которой мы хотели иметь локальную виртуальную машину. Мы хотим предотвратить "Это работает на моей машине!"

Некоторые обходные пути, которые мы рассмотрели или попробовали:

  • Используйте lsyncd для синхронизации от общего ресурса vagrant до места внутри виртуальной машины, которое чувствительно к регистру
    • обновление файлов на хосте, похоже, не генерирует события в виртуальной машине, которую слушает lsync
  • Сделайте регистр с учетом регистра на хосте
    • (Не работает для Windows)
  • Используйте самбу
    • это может быть вариант, но мы еще не проверяли его.

Есть ли способ лучше? Обратите внимание, что у нас есть разработчики, использующие Windows, OS X и Ubuntu, и решение должно работать везде.

Скотт Колдуэлл
источник
Хороший вопрос, но я думаю, что он слишком ориентирован на разработку для SF. Возможно, вам больше повезет с переполнением стека, вы пометили миграцию :)
Крейг Уотсон,
1
Честно говоря, я думаю, что это не относится к SO, поскольку тот факт, что это для развития, в значительной степени несущественен; вопрос касается чувствительности к регистру файловой системы, поскольку это касается бродячих гостей и хостов.
Феб

Ответы:

6

Я обошел проблему в OS X, создав разреженный образ диска в папке своего проекта и отформатировал его с учетом регистра.

После монтирования разреженного изображения я перенес на него свой код. Затем замените исходную папку «src» символической ссылкой / псевдонимом на смонтированный образ. Таким образом, общая папка чувствительна к регистру в гостевой ОС.

Определенно, это не самое элегантное решение, но оно сокращает разрыв между средой развертывания и разработки, поэтому я начал использовать Vagrant в первую очередь.

Возможно, подобный обходной путь мог бы работать и для Ubuntu и Windows?

Джейсон Суаве
источник
Windows вообще не имеет чувствительной к регистру файловой системы.
Майкл Хэмптон
Спасибо Джейсон. Я рассмотрел это, и это будет работать на моем Mac и Ubuntu, но не будет работать для Windows. Также добавлен ручной шаг для создания среды разработки, которую я надеялся написать полностью с использованием vagrant / chef. Возможно, другого варианта не будет.
Скотт Колдвелл
2
Чувствительность к регистру - одна из главных причин, по которой я обратился к Vagrant после многих лет использования MAMP, поэтому я действительно разочарован тем, что это остается проблемой. Я не могу поверить, что это не указано более четко в документах Вагранта.
Джейсон Суав
3
@JasonSuave Проблема на самом деле с VirtualBox и тем, что он использует для монтирования, а не с Vagrant. Vagrant контролирует только крепления VirtualBox. У вас может быть другой опыт работы с VMWare ... Я не пробовал.
Брэд
0

Я столкнулся с той же проблемой, и я решил эту проблему, используя рабочий каталог на виртуальной машине через git clone и добавляя общий ресурс Samba, указывая на него, делая его доступным как для Windows, так и для Mac.

Thazar
источник