Я пытался понять, как развертывать приложения Opa в dotcloud. Приложение по умолчанию работает, но пример вики из документов 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
На этом изображении показано, как моногдб выглядит локально. http://imgur.com/LJ1RY
ОБНОВЛЕНИЕ: я узнал, что у mongodb есть отдельный журнал. Я нашел это:
auth: couldn't find user root, _no_name.system.users
что, по-видимому, указывает на то, что аутентификация не работает.
ОБНОВЛЕНИЕ 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;}
Мне любопытно, есть ли способ использовать любую другую именованную базу данных, кроме admin через opa, но, по крайней мере, это заставляет меня работать.