Search code examples
vagrantvagrantfile

unable to sync folder in vagrant


I am using vagrant box 'ubuntu/trusty64'. I am trying to sync folder in vagrant and for that, I have modified my vagrant file. The file is:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "foo-box"
  config.vm.network "forwarded_port", guest: 8000, host: 8000, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 5000, host: 5000, host_ip: "127.0.0.1"

  # Work around disconnected virtual network cable.
  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
  end
Vagrant.configure("2") do |config|
  config.vm.synced_folder "C:/fullstack/vagrant", "home/vagrant"
end

  config.vm.provision "shell", inline: <<-SHELL
    apt-get -qqy update
    apt-get -qqy upgrade
    apt-get -qqy install make zip unzip postgresql

    apt-get -qqy install python3 python3-pip
    pip3 install --upgrade pip
    pip3 install flask packaging oauth2client redis passlib flask-httpauth
    pip3 install sqlalchemy flask-sqlalchemy psycopg2 bleach

    apt-get -qqy install python python-pip
    pip2 install --upgrade pip
    pip2 install flask packaging oauth2client redis passlib flask-httpauth
    pip2 install sqlalchemy flask-sqlalchemy psycopg2 bleach

    su postgres -c 'createuser -dRS vagrant'
    su vagrant -c 'createdb'
    su vagrant -c 'createdb news'
    su vagrant -c 'createdb forum'
    su vagrant -c 'psql forum -f /vagrant/forum/forum.sql'

    vagrantTip="[35m[1mThe shared directory is located at /vagrant\\nTo access your shared files: cd /vagrant[m"
    echo -e $vagrantTip > /etc/motd

    wget http://download.redis.io/redis-stable.tar.gz
    tar xvzf redis-stable.tar.gz
    cd redis-stable
    make
    make install

    echo "Done installing your virtual machine!"
  SHELL
end

I have also tried answer given in https://stackoverflow.com/questions/29731003/synced-folder-in-vagrant-is-not-syncing-in-realtime but of no help.

The path to my project on host machine is C:\fullstack. The content of the folder fullstack is

README.md  vagrant/  Vagrantfile

And further the content of vagrant folder is

catalog/  forum/  tournament/  Vagrantfile

The content in both the vagrantfile file is same. I tried to make an empty directory in guest machine in vagrant directory but the directory didn't show in host machine. Please suggest something.


Solution

  • You dont need to re-introduce a configure section, just have your Vagrantfile as

    Vagrant.configure("2") do |config|
      config.vm.box = "foo-box"
      config.vm.network "forwarded_port", guest: 8000, host: 8000, host_ip: "127.0.0.1"
      config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"
      config.vm.network "forwarded_port", guest: 5000, host: 5000, host_ip: "127.0.0.1"
    
      # Work around disconnected virtual network cable.
      config.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
      end
    
      config.vm.synced_folder "C:/fullstack/vagrant", "home/vagrant/stack"
    

    Also its not really good to sync on your /home/vagrant folder directly as this folder has the .ssh folder (ssh might not work) and bash information, its better to have a subdirectory of the main home folder.