W naszym stosie internetowym przechodzimy z systemu Windows Server do CentOS. Aby ułatwić rozwój, używamy Vagrant do lokalnego uruchamiania maszyn wirtualnych CentOS. Używamy funkcji Synchronizowanych folderów Vagrant, aby umożliwić deweloperom korzystanie z ich ulubionych IDE na ich hoście, ale okazuje się, że w tej konfiguracji brakuje jednej kluczowej funkcji: rozróżnianie wielkości liter w systemie plików.
Zsynchronizowany folder w maszynie wirtualnej najwyraźniej przyjmuje właściwości systemu plików hosta, więc jeśli programuję z komputera z systemem Windows, a nawet OSX, w systemie plików nie jest rozróżniana wielkość liter. To duży problem, ponieważ nasze serwery produkcyjne będą czystym CentOS, a system plików będzie rozróżniał wielkość liter.
Rozróżnianie wielkości liter jest jednym z głównych powodów, dla których chcieliśmy mieć lokalną maszynę wirtualną. Chcemy zapobiec „To działa na moim komputerze!”
Niektóre obejścia, które rozważaliśmy lub wypróbowaliśmy:
- Użyj programu lsyncd, aby zsynchronizować udział Vagrant z lokalizacją w maszynie wirtualnej, która rozróżnia małe i duże litery
- aktualizacja plików na hoście nie wydaje się generować zdarzeń na maszynie wirtualnej, których nasłuchuje lsync
- Utwórz partycję z rozróżnianiem wielkości liter na hoście
- (Nie działa w systemie Windows)
- Użyj samby
- może to być opcja, ale jeszcze tego nie sprawdziliśmy.
Czy jest lepszy sposób? Pamiętaj, że mamy programistów używających Windows, OS X i Ubuntu, a rozwiązanie musi działać wszędzie.
źródło
Odpowiedzi:
Rozwiązałem ten problem w systemie OS X, tworząc rzadki obraz dysku w folderze projektu i sformatowałem go tak, aby rozróżniał wielkie i małe litery.
Po zamontowaniu rzadkiego obrazu przeniosłem na niego mój kod. Następnie zastąpiono oryginalny folder „src” dowiązaniem symbolicznym / aliasem do zamontowanego obrazu. W ten sposób w folderze współdzielonym rozróżniana jest wielkość liter w systemie operacyjnym gościa.
Zdecydowanie nie jest to najbardziej eleganckie rozwiązanie, ale wypełnia lukę między środowiskiem wdrażania a środowiskiem programistycznym, dlatego właśnie zacząłem używać Vagrant.
Być może podobne obejście może działać również w Ubuntu i Windows?
źródło
Zetknąłem się z tym samym problemem i sposobem, w jaki go rozwiązałem, jest uzyskanie katalogu roboczego na maszynie wirtualnej przez klon git i dodanie udziału Samba wskazującego na niego, dzięki czemu jest on dostępny zarówno w systemie Windows, jak i Mac.
źródło