Развертывание Play! приложение на dotCloud, код возврата 137

Я пытаюсь развернуть приложение Playframework 2.0 на dotCloud, используя скрипт "нестандартного типа" из https://github.com/mchv/play2-on-dotcloud.

мой dotcloud.yml выглядит так:

play:
  type: custom
  buildscript: dotcloud/builder
  ports:
    www: http
  process: ~/run
  approot: .

мой dotcloud/builder сценарий:

#!/bin/bash
set -e
BUILDROOT="$(dirname "$0")"
VERSION=2.0.2

echo 'Checking if Play framework is already installed...'
if [ -d ~/play-${VERSION} ]
then
    echo 'Play framework found.'
else
    echo 'Play framework not found. Installing it...'
    echo '- Download Play framework'
    curl -O http://download.playframework.org/releases/play-${VERSION}.zip
    if [ -e play-${VERSION}.zip ]
    then
        echo '- Unzip downloaded file'
        unzip -q play-${VERSION}.zip
        if [ -d play-${VERSION} ]
        then
            echo '- Copy play installation'
            cp -R ./play-${VERSION} ~/play-${VERSION}
            echo 'Play installed.'
        else
            echo 'Unzip failed !'
        fi
    else
        echo 'Download failed !'
    fi
fi

echo 'Installing application'
rm -rf ~/application
cp -R  ./$SERVICE_APPROOT ~/application

echo 'Symlinking application logs to Supervisor area...'
rm -rf ~/application/logs
ln -s /var/log/supervisor ~/application/logs

echo  'Installing run script...'
cp "$BUILDROOT/run" ~

echo 'Building the Play application'
cd ~/application

echo ' -- Cleaning -- '
~/play-${VERSION}/play clean
echo ' -- Compiling -- '
~/play-${VERSION}/play compile
echo ' -- Staging -- '
~/play-${VERSION}/play stage

echo 'Build complete.'

Но когда я делаю dotcloud push myappслучайным образом завершается со следующим сообщением:

09:44:26 [play] Killed
-- Build failed: "SERVICE_POSTINSTALL='' SERVICE_APPROOT=. SERVICE_REQUIREMENTS='[]' SERVICE_BUILDSCRIPT=dotcloud/builder SERVICE_TYPE=custom SERVICE_PORTS_WWW=http SERVICE_PROCESS='~/run' ./dotcloud/builder" failed with return code 137
09:44:27 ---> Aborting due to some build failure

Либо это терпит неудачу в начале скрипта, либо недалеко от конца (время компиляции). Но каждый раз происходит сбой с одним и тем же сообщением об ошибке.

Также обратите внимание, что мне удалось развернуть предыдущее приложение Play на dotCloud (но меньшее).

Я пытался около 15 раз, и я не мог развернуть свое приложение:(

Есть ли тайм-аут с Бобом-строителем?

ОБНОВИТЬ:

Сделал больше тестов и, наконец, попытался собрать приложение, выполнив вход на сервер dotcloud, используя ssh. Когда я бегу play compile, он постоянно терпит неудачу при разрешении зависимостей, он пытается решить зависимости, и их "что-то" убивает процесс сборки:

dotcloud@xxxxx-default-play-0:~/application$ play compile
[info] Loading project definition from /home/dotcloud/application/project
[info] Set current project to xxxxx (in build file:/home/dotcloud/application/
    [info] Compiling 26 Scala sources and 10 Java sources to /home/dotcloud/application/modules/securesocial/target/scala-2.9.1/classes...
    [info] Updating {file:/home/dotcloud/application/}xxxxx...
    Killed Resolving play#play-test_2.9.1;2.0.2 ...

1 ответ

Решение

Проблема заключается в использовании памяти во время компиляции. Платформа Dotcloud ограничивает объем используемой памяти до 512 МБ, и по умолчанию воспроизведение занимает гораздо больше. Я обновил скрипт несколько раз назад, чтобы исправить проблему, подробности смотрите в этом коммите.

Другие вопросы по тегам