流星应用程序关于 vagrant share 的问题

Posted

技术标签:

【中文标题】流星应用程序关于 vagrant share 的问题【英文标题】:Issues with meteor app on vagrant share 【发布时间】:2012-12-03 03:48:14 【问题描述】:

我有一个带有流星的 vagrant VM (virtualbox) 设置。我的主人和客人都是 Ubuntu。 VM 包含通过 Vagrantfile 设置的 vboxfs 共享文件夹。我注意到的行为类似于 NFS 挂载。

我可以在这个共享文件夹中创建一个流星项目,但是当我运行该项目时,我收到指向 mongodb 的错误。

如果我按照以下说明操作 https://github.com/pixelhandler/vagrant-dev-env/blob/master/README.md 我的应用运行良好。

经过进一步调查,似乎 MongoDB 不适用于 NFS 共享,http://www.mongodb.org/display/DOCS/NFS

还有其他人遇到过这个问题吗?如果是这样,您是否找到了(非 rsync)解决方案?

我打算把这个问题的链接发给10gen,也许他们团队的人可以回答。

【问题讨论】:

【参考方案1】:

不确定 Mongo 计划在 NFS / vboxfs 上重新运行什么,但您可以通过在共享文件夹中运行您自己的 MongoDB 来解决这个问题(例如,使用 ubuntu mongodb 包)。使用MONGO_URL 环境变量告诉meteor 在哪里连接。如果你传递了这个变量,meteor 将不会尝试在 meteor 项目目录中启动 MongoDB。

【讨论】:

我还要注意,在 vagrant 中你不应该指定 PWD 或 HOME 环境变量,因为它也会导致错误。【参考方案2】:

您可以将数据目录移动到 VM 内的某个位置,并使用 vagrant 文件夹中的符号链接:

cd /vagrant/.meteor/local ln -s ~/db/

这意味着数据不会被共享,但你可能希望它被 git 忽略。

(https://grahamrhay.wordpress.com/2013/06/18/running-meteor-in-a-vagrant-virtualbox/)

【讨论】:

MonoDB 数据只是存储在 .meteor/local 中吗?我见过安装整个 .meteor 文件夹的其他解决方案,但这会搞砸陨石。 如果 /vagrant 是 NTFS,ln -s 表示 ln: failed to create symbolic link ‘./homedb’: Protocol error,尽管 mklink 可能是 ln 理解的 FS。【参考方案3】:

grahamrhay 的解决方案不适用于在 Windows 上启动的 vagrant box。没有办法在 windows 上为 vagrant 创建符号链接,至少对于管理员帐户没有。

【讨论】:

以上是关于流星应用程序关于 vagrant share 的问题的主要内容,如果未能解决你的问题,请参考以下文章

Vagrant Share - Laravel Homestead,Ubuntu

如何在本地机器上的 2 个流星应用程序之间可靠地共享 mongo 数据库?

Maven Clean 在 Linux Vagrant 共享驱动器上失败

如何在不实际运行“vagrant ssh”的情况下 ssh 到 vagrant?

为啥在 Vagrant box 中运行“share abc123.com”时,我的样式显示在桌面视图上,但没有显示在物理设备上?

找不到 HOME 环境 -- 扩展 `~'