Tôi muốn sử dụng Vagrant để cung cấp môi trường phát triển chung cho nhóm của mình. Các máy chủ hoàn toàn khác nhau:
- Một số sử dụng OS X, một số Linux và một số Windows.
- Một số sử dụng VMware, một số sử dụng VirtualBox.
Bên trong máy ảo, chúng tôi muốn chạy Linux.
Cho đến nay, mọi thứ vẫn ổn.
Bây giờ ý tưởng của chúng tôi là mỗi nhà phát triển sẽ có thể sử dụng IDE mà họ lựa chọn, và do đó chúng tôi đã giới thiệu một thư mục được đồng bộ hóa chia sẻ mã nguồn giữa máy chủ và máy ảo. Về cơ bản, điều này cũng hoạt động… ngoại trừ các liên kết tượng trưng.
Bên trong mã nguồn của chúng tôi, chúng tôi thực sự có một vài liên kết tượng trưng, đây không phải là vấn đề trong Linux bên trong máy ảo, nhưng trên Windows với tư cách là máy chủ, điều này gây ra sự cố. Điều duy nhất mà chúng tôi không thể làm là loại bỏ các liên kết tượng trưng, vì vậy chúng tôi cần một cách khác để giải quyết vấn đề này.
Cho đến nay, chúng tôi đã thử một số tùy chọn:
- Có một cách giải quyết được đề cập trong một vấn đề của Vagrant, rất tiếc, đây chỉ là VirtualBox và không giúp ích cho những người chạy VMware. Cho đến nay, chúng tôi vẫn chưa tìm ra cách chạy mã trong Vagrantfile tùy thuộc vào nhà cung cấp được sử dụng.
- Thay vì sử dụng thư mục chia sẻ tiêu chuẩn, giờ đây chúng tôi đã thử sử dụng kiểu rsync . Điều này hoạt động trên Windows, nhưng bị treo trên OS X với một số lỗi cho chúng tôi biết rằng
symlink has no referent
(một lỗi trên mỗi liên kết tượng trưng). - Chúng tôi đã nghĩ đến NFS , nhưng điều đó chỉ hoạt động nếu bạn không sử dụng Windows làm máy chủ.
- Chúng tôi cũng mặc dù về SMB , nhưng điều này một lần nữa chỉ hoạt động trên Windows với tư cách là máy chủ.
Tôi không thể tưởng tượng rằng chúng tôi là người duy nhất hoặc những người đầu tiên trên hành tinh này gặp sự cố với máy chủ đa nền tảng và liên kết tượng trưng trong thư mục chia sẻ.
Bạn có thể giải quyết vấn đề này bằng cách nào để chúng ta có thể giữ các liên kết tượng trưng, nhưng vẫn sử dụng các hệ điều hành máy chủ lưu trữ khác nhau?