2015-12-24 15 views
6

Tôi đã không sử dụng Vagrant trên Linux trong một thời gian. Khi tôi bắt đầu sử dụng phiên bản mới (Vagrant 1.8), tôi đã gặp phải sự cố: các tệp được tạo bên trong VM khách không xuất hiện trên thư mục được đồng bộ hóa của máy chủ.Làm cách nào để bật đồng bộ hóa thư mục hai chiều trong Vagrant với VirtualBox?

Làm cách nào để buộc Vagrant đồng bộ hóa tệp từ hệ điều hành khách với hệ điều hành máy chủ?

Trả lời

7

Theo tài liệu, khi type tùy chọn config.vm.synced_folder tham số trong Vagrantfile không được xác định, Vagrant cố gắng chọn lựa chọn tốt nhất có sẵn:

type (string) - Các loại thư mục đồng bộ hóa. Nếu điều này không được chỉ định, Vagrant sẽ tự động chọn tùy chọn thư mục được đồng bộ hóa tốt nhất cho môi trường của bạn. Nếu không, bạn có thể chỉ định một loại cụ thể như "nfs".

Bắt đầu với phiên bản 1.5 Vagrant introduced tính năng "thư mục được đồng bộ hóa rsync" mới.

Vì vậy, trong trường hợp của tôi, loại rsync được chọn tự động, đồng bộ hóa một chiều: từ máy chủ cho khách.

Để làm thư mục đồng bộ trong hai chiều tôi đã thêm định nghĩa rõ ràng trong Vagrantfile tôi:

config.vm.synced_folder ".", "/vagrant", type: "virtualbox" 

Tất nhiên, điều này sẽ chỉ làm việc cho VirtualBox.

Đồng bộ hóa hai chiều rất hữu ích cho luồng công việc, trong đó ứng dụng trên máy khách tạo tệp, ví dụ: tệp di chuyển cơ sở dữ liệu trong khung web hiện đại.

Lưu ý: thư mục được đồng bộ hóa virtualbox đã biết các vấn đề về hiệu suất khi dự án của bạn có số lượng tệp lớn.

+0

Sau khi cài đặt mới, bạn có thể nhận được lỗi sau khi tạo thư mục dùng chung: '' 'Vagrant không thể gắn các thư mục dùng chung của VirtualBox. Đây thường là vì hệ thống tệp "vboxsf" không khả dụng. Hệ thống tập tin này là được cung cấp qua VirtualBox Guest Additions và mô-đun hạt nhân. Vui lòng xác minh rằng các bổ sung khách này được cài đặt đúng cách trong số khách. Đây không phải là một lỗi trong Vagrant và thường được gây ra bởi một bị lỗi hộp Vagrant.''' ** Cài đặt bổ sung cho khách ** '' 'vagrant plugin install vagrant-vbguest''' –

+0

@Alex: điều đó không làm việc cho tôi. Tôi nhận được thông báo này: "Không thể giải quyết sự phụ thuộc: người dùng đã yêu cầu 'vagrant-hostmanager (= 1.8.6)'" – geoidesic

0

Cảm ơn vì điều này chính xác là những gì tôi đã tìm kiếm trong vài ngày qua !!!!! Tôi đã có vấn đề này với Laravel 5, homestead và vagrant. Có nhiều câu trả lời nhưng không có câu trả lời nào phù hợp với tôi. Tôi cũng đã có rsync trong phần thư mục của tôi tập tin yaml của tôi mà tôi cũng đã phải loại bỏ. Sau khi cả hai thay đổi chia sẻ tập tin cuối cùng đã được đồng bộ cho tôi giữa máy chủ và máy khách. ""

require File.expand_path(File.dirname(__FILE__) + '/scripts/homestead.rb') 

config.vm.synced_folder, "/ lang thang", kiểu: "VirtualBox"

Vagrant.configure (VAGRANTFILE_API_VERSION) làm | cấu hình |

Đây là nơi tôi đã thực hiện thay đổi đối với Vagranfile của mình.

Các vấn đề liên quan