Je souhaite utiliser Vagrant pour fournir un environnement de développement commun à mon équipe. Les hôtes sont complètement différents:
- Certains utilisent OS X, certains Linux et certains Windows.
- Certains utilisent VMware, certains utilisent VirtualBox.
À l'intérieur de la machine virtuelle, nous voulons exécuter Linux.
Jusqu'à présent, tout va bien.
À présent, notre idée était que chaque développeur puisse utiliser l'EDI de son choix, et nous avons donc introduit un dossier synchronisé qui partage le code source entre l'hôte et la VM. Cela fonctionne aussi bien… sauf pour les liens symboliques.
À l'intérieur de notre code source, nous avons en fait quelques liens symboliques, ce qui n'est pas un problème dans le Linux à l'intérieur de la VM, mais sur Windows en tant qu'hôte, cela pose des problèmes. La seule chose que nous ne pouvons pas faire est de nous débarrasser des liens symboliques, nous avons donc besoin d'un autre moyen de gérer cela.
Jusqu'à présent, nous avons essayé un certain nombre d'options:
- Il existe une solution de contournement mentionnée dans un numéro de Vagrant, malheureusement, il s'agit uniquement de VirtualBox et n'aide pas ceux qui exécutent VMware. Jusqu'à présent, nous n'avons pas trouvé de moyen d'exécuter du code dans le Vagrantfile en fonction du fournisseur utilisé.
- Au lieu d'utiliser un dossier partagé standard, nous avons maintenant essayé d'utiliser le type rsync . Cela fonctionne sous Windows, mais plante sous OS X avec un certain nombre d'erreurs nous indiquant que le
symlink has no referent
(une erreur par lien symbolique). - Nous avons pensé à NFS , mais cela ne fonctionne que si vous n'utilisez pas Windows comme hôte.
- Nous avons également pensé à SMB , mais cela ne fonctionne encore que sur Windows en tant qu'hôte.
Je ne peux pas imaginer que nous soyons les seuls ou les premiers sur cette planète à rencontrer des problèmes avec les hôtes multi-plateformes et les liens symboliques dans le dossier partagé.
Comment pouvez-vous résoudre ce problème, afin que nous puissions conserver des liens symboliques, tout en utilisant des systèmes d'exploitation hôtes différents?