dotcloud opa例子mongodb错误

时间:2012-08-15 14:24:15

标签: opa dotcloud

我一直在努力了解如何在dotcloud上部署Opa应用程序。默认应用程序有效,但Opa文档中的wiki示例无法启动:

==> /var/log/supervisor/opa.log <==
[Opa] _no_name DbGen/Mongo/SynchroStart Db is ready
[Opa] _no_name DbGen/Mongo/SynchroStart Process 0 operations on the db wait list, start
[Opa] _no_name DbGen/Mongo/SynchroStart Process 0 operations on the db wait list, finished
[Opa] Server dispatch Decoded URL to /
[Opa] DbGen/Mongo (failure) Read from wiki set doesn't returns anything
File "stdlib/database/mongo/db.opa", line 776, characters 6-32, (776:6-776:32 | 28076-28102)
fail: undefinedDbSet build error
Error : uncaught OPA exn { 'size`': 2,
fail: 'DbSet build error',
position: 'File "stdlib/database/mongo/db.opa", line 776, characters 6-32, (776:6-776:32 | 28076-28102)' }

这是我不正确设置的内容还是dotcloud系统中的错误?

我的.yml:

opa:
type: custom
buildscript: builder
process: ~/run
ports:
    www: http

db:
    type: mongodb

此图显示了monogdb在本地的外观。 http://imgur.com/LJ1RY

更新:我发现mongodb有一个单独的日志。我发现了这个:

auth: couldn't find user root, _no_name.system.users

这似乎指向身份验证不起作用。(也就是说,运行opa程序本地但指向远程mongodb会产生同样的错误。)任何想法为什么会出现这个问题?

UPDATE2:过去几天我一直在追尾,因为我不太明白Cédrics在谈论什么。以下是我用示例替换示例中的数据库行的方法:

database admin {
stringmap(string) /wiki;
/wiki[_] = "This page is empty. Double-click to edit.";
}

问题是我正在改变路径,而不是数据库名称:

ex: database int /admin/wiki 

而不是

ex. database admin {int /wiki;}

我很好奇是否有办法使用任何其他命名数据库,除了管理员通过opa,但至少这让我运行。

1 个答案:

答案 0 :(得分:1)

UPDATE2:

我在这里推动了一个有效的dotcloud conf:https://github.com/cedricss/opa-on-dotcloud.git


你确定mongodb正在运行吗? 您是否在dotcloud.yml文件中添加了以下行?

db:
    type: mongodb

此处有关Opa on dotcloud的更多信息:https://github.com/dotcloud/opa-on-dotcloud

<强>更新 确实现在有些事情已经破裂 可以在上面的例子中完成两个更新:

    应该更新
  • 构建器以使用Opa 1.0.5来获取所有与mongodb相关的修复:BINURL="http://download.opalang.org/linux/opa_1.0.5%2Bbuild2988_amd64.release.run"

  • opa 1.0.5至少需要node 0.6.xdotcloud.yml必须完成,如此处所述:http://docs.dotcloud.com/services/nodejs/#node-js-versions但我不知道为什么我的实例一直有节点即使在创建一个全新的应用程序后,也安装了0.4.0我稍后再试一次。