Voglio usare Vagrant per fornire un ambiente di sviluppo comune al mio team. Gli host sono completamente diversi:
- Alcuni usano OS X, alcuni Linux e alcuni Windows.
- Alcuni usano VMware, altri usano VirtualBox.
All'interno della VM vogliamo eseguire Linux.
Finora va tutto bene.
Ora la nostra idea era che ogni sviluppatore fosse in grado di utilizzare l'IDE di sua scelta, e quindi abbiamo introdotto una cartella sincronizzata che condivide il codice sorgente tra l'host e la VM. Fondamentalmente, funziona anche ... tranne che per i collegamenti simbolici.
All'interno del nostro codice sorgente abbiamo effettivamente alcuni link simbolici, il che non è un problema all'interno di Linux all'interno della VM, ma su Windows come host questo causa problemi. L'unica cosa che possiamo non facciamo è sbarazzarsi dei link simbolici, quindi abbiamo bisogno di un altro modo di affrontare la questione.
Finora abbiamo provato una serie di opzioni:
- C'è una soluzione alternativa menzionata in un numero di Vagrant, sfortunatamente questo è solo VirtualBox e non aiuta coloro che eseguono VMware. Finora, non abbiamo trovato un modo per eseguire il codice nel Vagrantfile a seconda del provider utilizzato.
- Invece di utilizzare una cartella condivisa standard, ora abbiamo provato a utilizzare il tipo rsync . Funziona su Windows, ma si blocca su OS X con una serie di errori che ci dicono che il
symlink has no referent
(un errore per collegamento simbolico). - Abbiamo pensato a NFS , ma funziona solo se non utilizzi Windows come host.
- Abbiamo anche pensato a SMB , ma anche questo funziona solo su Windows come host.
Non riesco a immaginare che siamo le uniche o le prime persone su questo pianeta ad avere problemi con host multipiattaforma e collegamenti simbolici all'interno della cartella condivisa.
Come puoi risolvere questo problema, in modo da poter mantenere collegamenti simbolici, ma utilizzare comunque diversi sistemi operativi host?