dotcloud opa примеры ошибка mongodb

Я пытался понять, как развертывать приложения 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, но, по крайней мере, это заставляет меня работать.


person eyecreate    schedule 15.08.2012    source источник


Ответы (1)


обновление2:

Я отправил рабочую конфигурацию dotcloud здесь: https://github.com/cedricss/opa-on-dotcloud.git


Вы уверены, что mongodb работает? Вы добавили следующие строки в свой файл dotcloud.yml?

db:
    type: mongodb

Подробнее об Opa в dotcloud здесь: 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.5 требуется не менее node 0.6.x, dotcloud.yml необходимо выполнить, как описано здесь: http://docs.dotcloud.com/services/nodejs/#node-js-versions, но я не знаю, почему в моих экземплярах по-прежнему установлен узел 0.4.0 даже после создания нового приложения. У меня будет еще одна попытка позже.

person Cédrics    schedule 15.08.2012
comment
Да, это то, что я использовал в качестве основы для своего .yml. Добавил мой yml в OP. - person eyecreate; 15.08.2012
comment
Раньше я пробовал более новую Opa, но не знал, что в .yml можно указать другую версию node.js. Возможно ли, что раздел конфигурации node_version читается только в том случае, если тип nodejs? - person eyecreate; 15.08.2012
comment
Я пробую некоторые материалы сценария сборки отсюда: github.com/dotcloud/node-on-dotcloud выглядит многообещающе. - person eyecreate; 16.08.2012
comment
кажется, у него все еще есть проблема с моногдб с 0.6.20, полученным с использованием вышеуказанного дополнения сценария сборки. - person eyecreate; 16.08.2012
comment
Хорошо, действительно изменение типа на nodejs помогло учесть версию узла (поэтому github.com/dotcloud/node-on-dotcloud устарел) - person Cédrics; 16.08.2012
comment
Я отправил рабочую конфигурацию dotcloud здесь: github.com/cedricss/opa-on-dotcloud. git попробуйте! - person Cédrics; 16.08.2012
comment
Хм ... Кажется, я все еще получаю ошибки mongodb. Может быть, я делаю что-то не так, так как локально это работало нормально. Вот папка, которую я отправил: sendspace.com/file/snw89a - person eyecreate; 16.08.2012
comment
в качестве быстрого исправления измените имя вашей базы данных на admin (и замените все ваши /wiki на /admin), по некоторым причинам только пространство имен admin имеет пользователя root для аутентификации. Дополнительная информация здесь: docs.dotcloud.com/services/mongodb. - person Cédrics; 16.08.2012
comment
Я получаю ту же ошибку, но с администратором вместо вики в ошибке из-за того, что ничего не возвращает. Возможно, я не знаю, как изменить имя базы данных, но то, что я сделал, кажется правильным: --db-remote:admin $MONGO_URL (не помогает, я раньше не использовал mongodb.) - person eyecreate; 16.08.2012
comment
если у вас одна база данных, просто используйте опцию --db-remote (без :admin). Кстати, я добавил более сложный пример (wiki mvc) здесь, в ветке origin/wiki_mvc: github.com /cedricss/opa-on-dotcloud - person Cédrics; 16.08.2012
comment
--db-remote - это то, что у меня было раньше, так что это означает, что есть что-то еще, вызывающее мой (фактически код примера Opa: doc.opalang.org/manual/Hello--wiki), чтобы не запускать его в dotcloud. Поскольку раньше он работал нормально локально, может ли это быть связано с mongodb, используемым в dotcloud, или что-то еще отсутствует? - person eyecreate; 18.08.2012
comment
Хм... Кажется, это изображение отображается при локальном запуске, БД не хранится в админке. Это часть проблемы? imgur.com/LJ1RY - person eyecreate; 22.08.2012
comment
хм... в моем обновлении о невозможности найти root, оно исчезает, если я использую --db-remote:admin. Тем не менее, все еще есть та же ошибка сборки dbset. - person eyecreate; 22.08.2012
comment
да, только административная база данных в dotcloud по умолчанию имеет готового пользователя root для аутентификации, но я предполагаю, что в dotcloud есть способ настроить доступ пользователей к другим базам данных. - person Cédrics; 22.08.2012