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.
la source
Réponses:
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?
la source
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.
la source