0

我一直在尝试了解如何在 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 使用除 admin 之外的任何其他命名数据库,但至少这让我运行起来。

4

1 回答 1

1

更新2:

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


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

db:
    type: mongodb

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

更新: 现在确实有些东西坏了。在上面的 conf 示例中可以进行两个更新:

  • builder 应该更新为使用 Opa 1.0.5 来修复所有 mongodb 相关的问题:BINURL="http://download.opalang.org/linux/opa_1.0.5%2Bbuild2988_amd64.release.run"

  • opa 1.0.5node 0.6.x至少需要,dotcloud.yml必须像这里解释的那样完成:http: //docs.dotcloud.com/services/nodejs/#node-js-versions但我不知道为什么我的实例即使在之后仍然安装节点 0.4.0创建一个全新的应用程序。我稍后再试一次。

于 2012-08-15T16:34:38.257 回答