Vagrantを使用して、チームに共通の開発環境を提供したいと考えています。ホストは完全に異なります:
- 一部はOS X、一部はLinux、一部はWindowsを使用しています。
- VMwareを使用するユーザーもいれば、VirtualBoxを使用するユーザーもいます。
VMの内部では、Linuxを実行します。
これまでのところ、すべてが順調です。
私たちの考えは、各開発者が選択したIDEを使用できるようにすることです。そのため、ホストとVMの間でソースコードを共有する同期フォルダーを導入しました。これは基本的には動作しますが、シンボリックリンクを除きます。
私たちのソースコードの内部には、いくつかのシンボリックリンクがありますが、これはVM内のLinux内の問題ではありませんが、Windows上のホストとしては、これが問題の原因になります。私たちができない唯一のことはシンボリックリンクを取り除くことなので、これに対処する別の方法が必要です。
これまで、いくつかのオプションを試してきました。
- Vagrantの問題に記載されている回避策がありますが、残念ながらこれはVirtualBoxのみであり、VMwareを実行している人には役立ちません。これまでのところ、使用しているプロバイダーに応じて、Vagrantfileでコードを実行する方法は見つかりませんでした。
- 標準の共有フォルダーを使用する代わりに、rsyncタイプを使用してみました。これはWindowsでは機能しますが、OS Xでクラッシュし
symlink has no referent
ます(シンボリックリンクごとに1つのエラー)。 - NFSについて考えましたが、これはWindowsをホストとして使用しない場合にのみ機能します。
- SMBについても考えましたが、これもホストとしてのWindowsでのみ機能します。
共有フォルダー内でマルチプラットフォームホストとシンボリックリンクの問題が発生するのは、私たちがこの惑星で唯一または最初の人だとは思えません。
この問題をどのように解決すれば、シンボリックリンクを維持しながら、別のホストオペレーティングシステムを使用できますか?