2012-01-05 3 views
3

У меня есть проект Rails под git.Расположение приложения при нажатии на Heroku

Структура:

SomeProject 
    -Docs 
    -Src 
     -Rails 

Рельсы является корнем приложения рельсов, но SomeProject является корнем репо.

Когда я пытаюсь нажать на Heroku я получаю:

Heroku толчок отвергнут, не Cedar поддерживаемых приложений не обнаружено

Так что мои вопросы:

  1. Будет ли это возникает из-за того, что разгрузка репо и корень приложения Rails различны?

  2. Если это так, я могу сказать Heroku, где корень приложения Rails?

  3. Если нет, что еще может вызвать эту проблему?

+1

это хороший вопрос. Я этого никогда не видел. Вы можете сделать некоторые обманки, поместив config.ru в базу и добавив каталог src в путь загрузки, но он всегда будет ожидать/public, чтобы присутствовать. Я был бы склонен разбить приложение на свое собственное репо и связать его с/Src/Rails как подмодулем git. –

+0

Тип понравившегося здесь решения: http://stackoverflow.com/questions/3081699/deploy-a-subdirectory-to-heroku –

ответ

3

Это не идеальная ситуация, особенно для героику, но общепринятое решение довольно простое. От вашего имени потребуется немного работы, но ничего плохого.

  1. Создайте два репозитория, один для приложения для рельсов, и один для «SomeProject».

  2. Добавьте приложение для рельсов в качестве подмодуля в «SomeProject». Вы можете добавить их довольно легко, используя что-то вроде git submodule add [email protected]:user/rails_app/ rails. Это добавит приложение rails в качестве подмодуля к вашему проекту, поэтому это, по сути, собственный репозиторий. Узнать больше here.

  3. Добавить heroku как удаленный подмодуль, а когда вы хотите развернуть приложение, нажмите из подмодуля, а не весь проект.

Это не так просто, как git push heroku master:'/rails', но ничего подобного не существует (пока, во всяком случае).

Надеюсь, это поможет!

+0

Хороший ответ. Благодарю. – Undistraction

1

Самое простое решение - разделить приложение Rails на свой собственный репозиторий, как предлагает andrewpthorp.

Другое решение - написать собственный сборщик в отдельном репозитории на основе heroku/heroku-buildpack-ruyby, но настроен для поддержки вашего альтернативного макета проекта и использовать его для развертывания вашего приложения.

Смежные вопросы