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 を指している場合も同じエラーが発生します)。この問題が発生する理由はありますか?

更新 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 以外の名前付きデータベースを使用する方法があるかどうか興味がありますが、少なくともこれで実行できます。

4

1 に答える 1

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 をご覧ください。

更新: 確かに何かが壊れています。上記の conf の例では、2 つの更新を行うことができます。

  • ビルダーを更新して 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 に答える