Les dossiers synchronisés Vagrant ne sont pas sensibles à la casse

10

Pour notre pile Web, nous passons d'un serveur Windows à CentOS. Pour faciliter le développement, nous utilisons Vagrant pour exécuter les machines virtuelles CentOS localement. Nous utilisons la fonction Dossiers synchronisés de Vagrant pour permettre aux développeurs d'utiliser leurs IDE préférés sur leur machine hôte, mais nous constatons qu'une fonctionnalité clé manque dans cette configuration: la sensibilité à la casse du système de fichiers.

Le dossier synchronisé à l'intérieur de la machine virtuelle prend apparemment les propriétés du système de fichiers de l'hôte, donc si je développe à partir d'une machine Windows, ou même OSX, le système de fichiers n'est pas sensible à la casse. C'est un gros problème, car nos serveurs de production seront purement CentOS, et son système de fichiers sera sensible à la casse.

La sensibilité à la casse est l'une des principales raisons pour lesquelles nous voulions avoir une machine virtuelle locale. Nous voulons éviter "Ça marche sur ma machine!"

Quelques solutions de contournement que nous avons envisagées ou essayées:

  • Utilisez lsyncd pour synchroniser à partir du partage vagabond vers un emplacement dans la machine virtuelle qui respecte la casse
    • la mise à jour des fichiers sur l'hôte ne semble pas générer les événements de la machine virtuelle que lsync écoute
  • Créer une partition sensible à la casse sur l'hôte
    • (Ne fonctionne pas pour Windows)
  • Utilisez la samba
    • cela peut être une option, mais nous ne l'avons pas encore vérifié.

Y a-t-il une meilleure façon? Notez que nous avons des développeurs utilisant Windows, OS X et Ubuntu, et la solution doit fonctionner partout.

Scott Coldwell
la source
Bonne question, mais trop axé sur le développement pour SF je pense - vous pourriez avoir plus de chance sur Stack Overflow, avez signalé la migration :)
Craig Watson
1
Honnêtement, je pense que cela n'appartient pas à SO car le fait que ce soit pour le développement est en grande partie immatériel; la question porte sur la sensibilité à la casse du système de fichiers en ce qui concerne les hôtes et hôtes vagabonds.
phoebus

Réponses:

6

J'ai contourné le problème sur OS X en créant une image disque clairsemée dans mon dossier de projet et en la formatant pour qu'elle soit sensible à la casse.

Après avoir monté l'image clairsemée, j'ai déplacé mon code dessus. Puis remplacé le dossier "src" d'origine par un lien symbolique / alias vers l'image montée. De cette façon, le dossier partagé est sensible à la casse dans le système d'exploitation invité.

Ce n'est certainement pas la solution la plus élégante, mais elle réduit l'écart entre le déploiement et l'environnement de développement, c'est pourquoi j'ai commencé à utiliser Vagrant en premier lieu.

Peut-être qu'une solution de contournement similaire pourrait également fonctionner pour Ubuntu et Windows?

Jason Suave
la source
Windows n'a pas du tout de système de fichiers sensible à la casse.
Michael Hampton
Merci Jason. J'ai considéré cela, et cela fonctionnerait sur mon Mac et Ubuntu, mais ne fonctionnerait pas pour Windows. Il ajoute également une étape manuelle pour créer un environnement de développement, que j'avais espéré écrire entièrement en utilisant vagrant / chef. Il n'y a peut-être pas d'autre option, cependant.
Scott Coldwell
2
La sensibilité à la casse est l'une des principales raisons pour lesquelles je me suis tourné vers Vagrant, après des années d'utilisation de MAMP, donc je suis vraiment déçu que cela reste un problème. Je ne peux pas croire que cela ne soit pas indiqué plus clairement dans les documents de Vagrant.
Jason Suave
3
@JasonSuave Le problème est en fait avec VirtualBox et ce qu'il utilise pour les montages, pas Vagrant. Vagrant contrôle uniquement les montures VirtualBox. Vous pourriez avoir des expériences différentes sur VMWare ... Je n'ai pas essayé.
Brad
0

J'ai rencontré le même problème et la façon dont je l'ai résolu en obtenant en travaillant le répertoire sur la machine virtuelle via git clone et en ajoutant un partage Samba en le pointant le rendant accessible sur Windows ou Mac.

Thazar
la source