Не удается развернуть приложение Play в Heroku - PullRequest
4 голосов
/ 27 сентября 2011

У меня проблемы с развертыванием приложения Play в Heroku.У меня не возникло проблем с развертыванием других базовых приложений без модулей, но это выдает мне следующую ошибку:

@ubuntu:~/$ git push heroku master
Counting objects: 812, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (699/699), done.
Writing objects: 100% (794/794), 2.00 MiB, done.
Total 794 (delta 145), reused 0 (delta 0)

-----> Heroku receiving push
-----> Play! app detected
-----> Installing ivysettings.xml..... done
-----> Building Play! application...
       ~        _            _ 
       ~  _ __ | | __ _ _  _| |
       ~ | '_ \| |/ _' | || |_|
       ~ |  __/|_|\____|\__ (_)
       ~ |_|            |__/   
       ~
       ~ play! 1.2.3, http://www.playframework.org
       ~
       1.2.3
       Play! application root found at ./mods/playcopy/crud-1.2.3/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/use-gs-in-tags/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/demo/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/inline-dependency-declaring/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/jquery-ui/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/booking/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/less-and-coffee/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/chat/
./mods/playcopy/greenscript-1.2.6h/
./
       Resolving dependencies: .play/play dependencies ./mods/playcopy/crud-1.2.3/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/use-gs-in-tags/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/demo/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/inline-dependency-declaring/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/jquery-ui/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/booking/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/less-and-coffee/
./mods/playcopy/greenscript-1.2.6h/samples-and-tests/chat/
./mods/playcopy/greenscript-1.2.6h/
./ --forceCopy --silent -Duser.home=/tmp/build_1hn7e8ahaqrso 2>&1
       ~ Resolving dependencies using /tmp/build_1hn7e8ahaqrso/mods/playcopy/crud-1.2.3/conf/dependencies.yml,
       ~
       ~
       ~ No dependencies to install
           ~
       ~ Done!
       ~
       ~        _            _ 
       ~  _ __ | | __ _ _  _| |
       ~ | '_ \| |/ _' | || |_|
       ~ |  __/|_|\____|\__ (_)
       ~ |_|            |__/   
       ~
       ~ play! 1.2.3, http://www.playframework.org
       ~
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 64: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/use-gs-in-tags/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 65: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/demo/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 66: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/inline-dependency-declaring/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 67: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/jquery-ui/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 68: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/booking/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 69: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/less-and-coffee/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 70: ./mods/playcopy/greenscript-1.2.6h/samples-and-tests/chat/: is a directory
/app/slug-compiler/lib/../language_packs/play/bin/compile: line 71: ./mods/playcopy/greenscript-1.2.6h/: is a directory
       /app/slug-compiler/lib/../language_packs/play/bin/compile: line 72: ./: is a directory
 !     Failed to build Play! application
 !     Cleared Play! framework from cache
/app/slug-compiler/lib/language_pack.rb:35:in `block in compile': failed to compile Play! app (Slug::CompileError)
    from /app/slug-compiler/lib/language_pack.rb:32:in `fork'
    from /app/slug-compiler/lib/language_pack.rb:32:in `compile'
    from /app/slug-compiler/lib/slug.rb:490:in `block in run_language_pack'
    from /app/slug-compiler/lib/utils.rb:117:in `log'
    from /app/slug-compiler/lib/slug.rb:727:in `log'
    from /app/slug-compiler/lib/slug.rb:489:in `run_language_pack'
    from /app/slug-compiler/lib/slug.rb:110:in `block (2 levels) in compile'
    from /app/slug-compiler/lib/utils.rb:98:in `block in timeout'
    from /usr/local/lib/ruby/1.9.1/timeout.rb:57:in `timeout'
    from /app/slug-compiler/lib/utils.rb:98:in `rescue in timeout'
    from /app/slug-compiler/lib/utils.rb:93:in `timeout'
    from /app/slug-compiler/lib/slug.rb:99:in `block in compile'
    from /app/slug-compiler/lib/utils.rb:117:in `log'
    from /app/slug-compiler/lib/slug.rb:727:in `log'
    from /app/slug-compiler/lib/slug.rb:98:in `compile'
    from /app/slug-compiler/bin/slugc:85:in `block in <main>'
    from /app/slug-compiler/lib/slug.rb:498:in `block in lock'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `call'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `run'
    from /app/slug-compiler/lib/slug.rb:498:in `lock'
    from /app/slug-compiler/bin/slugc:66:in `<main>'
-----> Discovering process types
       Procfile declares types -> web
-----> Compiled slug size is 36.4MB
-----> Launching... done, v6
       http://billeteo.herokuapp.com deployed to Heroku

To git@heroku.com:billeteo.git
   53b789c..24f66a4  master -> master

Несмотря на то, что я запускаю из корня моего проекта, Heroku считает, что мой кореньat:

 Play! application root found at ./mods/playcopy/crud-1.2.3/

, который, конечно, не содержит код и процесс завершается неудачей.

Мое приложение - стандартное приложение Play со следующими зависимости.xml:

# Application dependencies
# Notes:
#   play is an alias for play -> play $currentVersion
#   play -> crud is an alias for play -> crud $currentVersion
#   play -> secure is an alias for play -> secure $currentVersion
#   Modules from the main repository use 'play' as organisation

require:
    - play
    - playcopy -> crud 1.2.3
    - playcopy -> betterlogs 1.0
    - playcopy -> cobertura 2.1
    - playcopy -> mockito 0.1
    - playcopy -> greenscript 1.2.6h
    - custom -> useragentcheck 1.0
    - org.hibernate -> hibernate-search 3.4.0.Final

repositories:
     - localModules:
         type:       local
         artifact:   "${application.path}/mods/[organisation]/[module]-[revision]"
         contains:
           - playcopy
           - custom

Я использую локальный репозиторий для некоторых официальных модулей Play, поскольку они могут иметь некоторый пользовательский код (удалить некоторые ненужные классы, изменить безопасность, некоторые журналы и т. Д.).

Кто-нибудь знает, как заставить Heroku найти правильный корень?Не могу найти что-либо в Google ...

1 Ответ

4 голосов
/ 28 сентября 2011

Настройка Play на Heroku не предполагала вашу конкретную настройку здесь. Как вы указали, он запутался в том, где находится корень вашего приложения. Я думаю, что мы можем решить эту проблему, но в то же время вы должны обойти это. Попробуйте это:

Заархивируйте свои пользовательские модули и измените файл dependencies.yml на

...
repositories:
 - localModules:
     type:       local
     artifact:   "${application.path}/mods/[organisation]/[module]-[revision].zip"
     contains:
       - playcopy
       - custom
...

Во время разрешения зависимостей Play должен разархивировать ваши пользовательские модули и поместить их в нужное место. Кроме того, Heroku не следует путать с тем, где находится корень вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...