Ignore synced folder files/directories with NFS as sync system for Vagrant

3.4k views Asked by At

Is there any way to make NFS to ignore specified files and/or directories from the synced folder? I have done it with rsync (rsync__exclude), but don't find any reference for NFS. I'm also looking for a solution for SMB. Any ideas?

3

There are 3 answers

0
Manolo On BEST ANSWER

In my case I had to keep cache and log files unsynchronized, and the solution I found out was to create a symbolic link instead of the cache and log folders (e.g. app/cache and app/log) which points to a directory outside the synchronized folder (e.g. /home/vagrant/project/cache). Then, the files inside app/cache are not synchronized. Hope it helps.

2
Mr. Hasquestions On

My rep isn't high enough to comment on the above answer, I had the exact same problem. I had to do a little work and figure this detail out:

The symlink must be in your virtual machine. So for example:

vagrant ssh
cd your/webapp
mkdir outside/your/webapp
ln -s outside/your/webapp cache

Now the symlink will show up in your project folder, but you won't actually be synchronizing any files across it.

0
Julesezaar On

I managed to combine NFS and RSync. In the RSync we can exclude the NFS folders

This is what I have in my vagrantfile for a Symfony 3.4 project. Every folder will be NFS except the /var folder

biDirectionalNFSFolders = []

Dir.foreach('.') do |folder|

    # Skip if not a directory?
    # Skip if /var folder
    # Skip if . or .. folder
    next if !File.directory?(folder) or folder == 'var' or folder == '.' or folder == '..'

    # This folder can be NFS synced
    fullPath = '/htdocs/' + folder
    biDirectionalNFSFolders.push(fullPath)
    config.vm.synced_folder "." + fullPath, "/vagrant" + fullPath, type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'fsc', 'nolock', 'actimeo=2']

end

# The remaining folders (/var only in this case) can then be Rsynced, the NFS folders will be excluded
config.vm.synced_folder ".", "/vagrant", type: "rsync",
    rsync__exclude: biDirectionalNFSFolders