我一直在尝试了解如何在dotcloud上部署Opa应用程序。默认应用程序可以工作,但Opa文档中的维基示例无法启动,并显示以下内容:
==> /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之外的其他命名数据库,但至少这让我运行起来。
发布于 2012-08-16 00:34:38
update2:
我在这里推出了一个工作的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示例中,可以完成两个更新:
mongodb生成器应该更新为使用OPA1.0.5来修复所有与BINURL="http://download.opalang.org/linux/opa_1.0.5%2Bbuild2988_amd64.release.run"
opa 1.0.5相关的问题:至少需要node 0.6.x,dotcloud.yml必须像这里解释的那样完成:http://docs.dotcloud.com/services/nodejs/#node-js-versions但我不知道为什么我的实例在创建了一个新的应用程序后仍然安装了Node0.4.0。稍后我会再试一次。https://stackoverflow.com/questions/11971107
复制相似问题