Vagrant:在主机(Windows 10)IDE中编辑的更改未反映在来宾计算机(Ubuntu)中

时间:2018-07-24 19:07:10

标签: vagrant vagrantfile vagrant-windows

我正在使用这个无聊的盒子来测试我正在处理的python脚本

    config.vm.box = "mcandre/vagrant-ubuntu-python3"

主机中的项目根目录为c:/ pythontest Vagrantfile在此根目录中

    c:/pythontest/Vagrantfile

我将python脚本test.py放置在c:/ pythontest中,默认情况下与来宾/ vagrant共享

    c:/pythontest/test.py

对于我在主机的IDE中所做的更改未反映在guest虚拟机中。

我遵循的步骤 我在脚本中进行更改 保存脚本 使用cat检查来宾机中终端的更改

但是,如果我重新加载流浪者盒子(vagrant reload),我可以看到更改。

我尝试了以下选项

    config.vm.synced_folder "./", "/vagrant"

`

    config.vm.synced_folder "c:/pythontest", "/vagrant"

当我打开盒子时(流浪汉)我会在输出中得到这个

    ==> default: Rsyncing folder: /cygdrive/c/pythontest/ => /vagrant

这是所有输出

    Bringing machine 'default' up with 'virtualbox' provider...
    ==> default: Checking if box 'mcandre/vagrant-ubuntu-python3' is up to date...
    ==> default: Clearing any previously set forwarded ports...
    ==> default: Clearing any previously set network interfaces...
    ==> default: Preparing network interfaces based on configuration...
        default: Adapter 1: nat
    ==> default: Forwarding ports...
        default: 22 (guest) => 2222 (host) (adapter 1)
    ==> default: Running 'pre-boot' VM customizations...
    ==> default: Booting VM...
    ==> default: Waiting for machine to boot. This may take a few minutes...
        default: SSH address: 127.0.0.1:2222
        default: SSH username: vagrant
        default: SSH auth method: private key
    ==> default: Machine booted and ready!
    ==> default: Checking for guest additions in VM...
    ==> default: Rsyncing folder: /cygdrive/c/datascience/ => /vagrant
    ==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
    ==> default: flag to force provisioning. Provisioners marked to run always will still run.

能否请您帮助我自动同步从主机进行的这些更改?

谢谢

1 个答案:

答案 0 :(得分:0)

您正在使用vagrant rsync共享文件夹类型,如文档中所述

  

rsync同步文件夹从计算机执行一次单向同步   运行到由Vagrant启动的计算机上。

     

rsyncrsync-auto命令可用于强制重新同步并   文件系统中发生更改时自动重新同步。不带   运行这些命令,Vagrant仅在Vagrant上同步文件夹   或无聊的重新加载。

如果进行一次更改,则可以运行vagrant rsync命令以确保您的更改在VM中是同步的。

如果您经常在主机上进行更改,则应运行vagrant rsync-auto,它将检测到主机上的更改并在VM上进行同步。