ฉันต้องการใช้ Vagrant เพื่อจัดเตรียมสภาพแวดล้อมการพัฒนาร่วมกันให้กับทีมของฉัน โฮสต์แตกต่างกันอย่างสิ้นเชิง:
- บางคนใช้ OS X, Linux บางตัวและ Windows บางตัว
- บางคนใช้ VMware บางคนใช้ VirtualBox
ภายใน VM เราต้องการเรียกใช้ Linux
จนถึงตอนนี้ทุกอย่างเรียบร้อยดี
ตอนนี้ความคิดของเราคือนักพัฒนาแต่ละคนจะสามารถใช้ IDE ที่ต้องการได้และด้วยเหตุนี้เราจึงได้แนะนำโฟลเดอร์ที่ซิงค์ซึ่งแชร์ซอร์สโค้ดระหว่างโฮสต์และ VM โดยพื้นฐานแล้วก็ใช้งานได้เช่นกัน ... ยกเว้นลิงก์สัญลักษณ์
ภายในซอร์สโค้ดของเราเรามีลิงก์สัญลักษณ์บางอย่างซึ่งไม่ใช่ปัญหาภายใน Linux ภายใน VM แต่บน Windows ในฐานะโฮสต์จะทำให้เกิดปัญหา สิ่งเดียวที่เราไม่สามารถทำได้คือกำจัดลิงก์สัญลักษณ์ดังนั้นเราจึงต้องการวิธีอื่นในการจัดการกับสิ่งนี้
จนถึงขณะนี้เราได้ลองใช้ตัวเลือกต่างๆมากมาย:
- มีวิธีแก้ปัญหาที่กล่าวถึงในปัญหาของ Vagrant น่าเสียดายที่นี่เป็น VirtualBox เท่านั้นและไม่ได้ช่วยผู้ที่ใช้ VMware จนถึงตอนนี้เรายังไม่พบวิธีการเรียกใช้โค้ดในVagrantfileขึ้นอยู่กับผู้ให้บริการที่ใช้
- แทนที่จะใช้โฟลเดอร์แชร์มาตรฐานตอนนี้เราได้ลองใช้ประเภทrsyncแล้ว สิ่งนี้ใช้ได้กับ Windows แต่เกิดข้อผิดพลาดบน OS X โดยมีข้อผิดพลาดหลาย
symlink has no referent
ประการบอกเราว่า(หนึ่งข้อผิดพลาดต่อลิงก์สัญลักษณ์) - เราคิดเกี่ยวกับNFSแต่จะใช้ได้เฉพาะเมื่อคุณไม่ได้ใช้ Windows เป็นโฮสต์
- แม้ว่าเราจะเกี่ยวกับSMBแต่สิ่งนี้ใช้ได้กับ Windows ในฐานะโฮสต์เท่านั้น
ฉันนึกไม่ออกว่าเราเป็นคนเดียวหรือคนแรกบนโลกนี้ที่ประสบปัญหากับโฮสต์หลายแพลตฟอร์มและลิงก์สัญลักษณ์ภายในโฟลเดอร์ที่แชร์
คุณจะแก้ปัญหานี้ได้อย่างไรเพื่อให้เราสามารถเก็บลิงก์สัญลักษณ์ไว้ แต่ยังคงใช้ระบบปฏิบัติการโฮสต์อื่น