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 を指している場合も同じエラーが発生します)。この問題が発生する理由はありますか?
更新 2: セドリックが何を話しているのかよくわからなかったので、ここ数日、尻尾を追いかけていました。動作させるために、例のデータベース行を次のように置き換えました。
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 以外の名前付きデータベースを使用する方法があるかどうか興味がありますが、少なくともこれで実行できます。