Loading vagrant exported image - 加载默认的新图像

Loading vagrant exported image - loads default, fresh image

我在加载导出的图像时遇到问题。

据我所知 - 我安装了我想要的并使用命令导出

vagrant package

我在目录中有图片

E:\projektai\php projektai\htdocs

并命名为 vagrant_image_exported

我这里有 vagrant 文件:

E:\other\dropbox\Dropbox\programavimas\kodo pavyzdziai\htdocs

下面是我如何设置将我的文件加载到 vagrant 文件中:

config.vm.box = "vagrant_image_exported"
config.vm.box_url = "file://e:/projektai/php projektai/htdocs/vagrant_image_exported"

我使用 cygwin 进入 vagrantfile 所在的目录并运行 vagrant up。

这是输出:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> 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: 80 => 8080 (adapter 1)
    default: 3306 => 3307 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> 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: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version o                                                                       f
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you                                                                        see
    default: shared folder errors, please make sure the guest additions within t                                                                       he
    default: virtual machine match the version of VirtualBox you have installed                                                                        on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.3.10
    default: VirtualBox Version: 4.1
==> default: Mounting shared folders...
    default: /vagrant => E:/other/dropbox/Dropbox/programavimas/kodo pavyzdziai/                                                                       htdocs
==> default: Machine already provisioned. Run `vagrant provision` or use the `--                                                                       provision`
==> default: to force provisioning. Provisioners marked to run always will still                                                                        run.

然后我用putty登陆vagrant,发现我没有安装什么:( 我真的不想再次安装我的程序。这就是为什么那些图像导出的原因,对吧?

所以看起来它从默认加载了一些东西,但我不知道如果我在 vagrant 文件中评论过,它是如何知道默认图像在哪里的:

 #config.vm.box = "ubuntu/trusty32"

至少我应该从哪里开始搜索哪里出了问题?

更新:

问了另一个人 - 他说我应该从虚拟框中导出名称,在我的例子中是这样的:

vagrant package --base htdocs_default_1418458570729_39510

我尝试通过在 virtual box 中启动来运行此映像,看到有我安装的程序 - php、mysql。

我重新创建包并用putty登录后,就没有php了。

还尝试完成本文中的步骤:

http://abhishek-tiwari.com/hacking/creating-a-new-vagrant-base-box-from-an-existing-vm

注意到我可能没有执行这个:

vagrant box add package package.box

执行并运行 vagrant up 后 - 还是一样。

最后我 运行 我导出的图像。

这是我所做的:

config.vm.box_url = "file:///e:/projektai/php projektai/htdocs/vagrant_image_exported"

注意文件后的3个斜杠。在一些例子中看到如此使用 3. 可能是因为 2 个斜杠是默认的,而第 3 个是根的意思,只有在根进入 e: ?

之后

这还不够。

我不得不 运行

vagrant destroy

我在 vagrantfile 所在的目录中完成了它。如果不这样做,即使设置了新的 config.vm.box_url,它也会加载旧图像——空的——刚从 vagrant 网站图像下载。有 .vagrant 文件夹,可能在这个文件夹中保存了一些指向旧机器的东西。可能是

之后

vagrant destroy - 此文件夹内容受到影响,它们不指向旧图像,而是使用我们在 config.vm.box_url 中设置的图像。

所以这就是我记得并相信是什么让它起作用了。如果我遗漏了什么,也许有人会添加评论或新答案。

当你设置 new url 但它被忽略时也是非常意外的行为,所以我想知道为什么 vagrant 会忽略它。至少它可以在 运行ning vagrant up 后在命令行中写一条消息,这样我们就可以理解了。

更新

发现您还需要重命名

的值
config.vm.box 

在 vagrantfile 中。