Error al comstackr php al implementar Symfony en heroku

Para mi aplicación Symfony, despliego en heroku .

Si usas heroku, notas que se ejecuta con git, composer, heroku toolbelt … etc.

Para implementar mi aplicación, debo fusionar mi request de extracción en el flujo ascendente (flujo de trabajo fork git). Hasta ahora, no hay problema, todo funciona correctamente. Una vez que fusiono mi request de extracción, tengo que extraer el maestro de aguas arriba de una twig y luego presionar esta twig en heroku con, por ejemplo, este command:

git push prod my-branch:master 

Para explicarlo con más precisión, este es mi control remoto git cuando hago git remote -v en la terminal:

 coworker https://github.com/my-coworker-repo/my-app.git (fetch) coworker https://github.com/my-coworker-repo/my-app.git (push) origin https://github.com/my-origin-repo/my-app.git (fetch) origin https://github.com/my-origin-repo/my-app.git (push) upstream https://github.com/my-company-account/my-app.git (fetch) upstream https://github.com/my-company-account/my-app.git (push) prod https://git.heroku.com/limitless-peak-.....git (fetch) prod https://git.heroku.com/limitless-peak-.....git (push) 

Entonces, cuando quisiera desplegarme en heroku con el command git push prod my-branch:master

Este error ocurrió:

Contando objects: 41, hecho. Compresión Delta utilizando hasta 4 hilos.

Comprimir objects: 100% (15/15), hecho. Escritura de objects: 100% (15/15), 1.49 KiB | 0 bytes / s, hecho. Total 15 (delta 10), reutilizado 0 (delta 0)

remoto: comprimir files fuente … hecho. remoto: fuente de construcción: remota: remota: —–> aplicación PHP detectada remotamente: remota:!
ADVERTENCIA: su 'composer.json' contiene una configuration no 'estable'

remoto: para 'estabilidad mínima'. Esto puede causar la installation de

remoto: versiones inestables de times de ejecución y extensiones durante este

desplegar.

remoto: se recomienda que siempre use banderas de estabilidad en su lugar,

remoto: incluso si tiene habilitado 'Prefer-stable'. Para get más información, control remoto: consulte https://getcomposer.org/doc/01-basic-usage.md#stability

remoto:

remoto: —–> Bootstrapping …

remoto:

remote: gzip: stdin: no en formatting gzip

remoto: alquitrán: el niño devolvió el estado 1

remote: tar: Error no recuperable: salir ahora

remoto:! Presione la aplicación PHP rechazada, no comstackda.

remoto: remoto:! Empuje fallido

remoto: Verificando implementación …

remoto:

remoto:! Empujar rechazado a mi aplicación.

remoto:

Para https://git.heroku.com/my-app.git ! [remote rechazado] my-branch -> error maestro (pre-receive hook decline): imposible de pousser des références vers ' https://git.heroku.com/my-app.git '

Si ejecuto una actualización de compositor o lo instalo en mi aplicación heroku run bash -r prod tengo un time de ejecución que permite el error de límite de memory, ¡pero no creo que el problema provenga de este problema! este es el error:

Error fatal de PHP: Se ha agotado el tamaño de memory permitido de 1073741824 bytes (se trató de asignar 32 bytes) en phar: ///app/.heroku/php/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php en la línea 52

Error grave: Se ha agotado el tamaño de memory permitido de 1073741824 bytes (se intentó asignar 32 bytes) en phar: ///app/.heroku/php/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php en la línea 52

Consulte https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors para get más información sobre cómo manejar los errores de falta de memory.

Este es mi file composer.json:

 { "name": "symfony/framework-standard-edition", "license": "MIT", "type": "project", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-4": { "": "src/" } }, "minimum-stability": "alpha", "prefer-stable": true, "require": { "php": "~5.6.0", "ext-mbstring": "*", "ext-mcrypt": "*", "symfony/symfony": "2.7.*", "doctrine/orm": "^2.4.8", "doctrine/doctrine-bundle": "~1.4", "symfony/assetic-bundle": "~2.3", "symfony/swiftmailer-bundle": "~2.3", "symfony/monolog-bundle": "~2.8", "sensio/distribution-bundle": "~4.0", "sensio/framework-extra-bundle": "^3.0.2", "incenteev/composer-parameter-handler": "~2.0", "friendsofsymfony/user-bundle": "~2.0.0", "knplabs/doctrine-behaviors": "~1.1", "friendsofsymfony/jsrouting-bundle": "^1.5", "jms/serializer-bundle": "^1.1", "genemu/form-bundle": "2.2.*", "elao/web-profiler-extra-bundle" : "~2.3", "a2lix/translation-form-bundle": "^2.0", "ircmaxell/password-compat": "~1.0", "vich/uploader-bundle": "^0.14.0", "liip/imagine-bundle": "^1.4", "doctrine/data-fixtures": "^1.1", "league/geotools": "@stable", "winzou/state-machine-bundle": "~0.2.2", "doctrine/doctrine-fixtures-bundle": "~2.2", "muka/shape-reader": "dev-master", "league/csv": "^8.0", "ronanguilloux/isocodes": "^2.0", "liuggio/excelbundle": "~2.0", "presta/sitemap-bundle": "dev-master", "liip/doctrine-cache-bundle": "^1.0", "evheniy/robots-txt-bundle": "1.*", "php-amqplib/rabbitmq-bundle": "^1.9", "icicleio/icicle": "^0.9.6" }, "require-dev": { "sensio/generator-bundle": "~2.3", "heroku/heroku-buildpack-php": "*" }, "scripts": { "pre-install-cmd": [ "BetonDirect\\EntityBundle\\HerokuDatabase::populateEnvironment" ], "post-install-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" ], "post-update-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" ], "compile": [ "php app/console assetic:dump --no-debug" ] }, "config": { "bin-dir": "bin" }, "extra": { "symfony-app-dir": "app", "symfony-web-dir": "web", "symfony-assets-install": "hard-copy", "incenteev-parameters": { "file": "app/config/parameters.yml", }, "branch-alias": { "dev-master": "2.7-dev" }, "heroku": { "php-config": [ "date.timezone=Europe/Paris" ] } } } 

¿Sabes dónde podría estar el problema?

Además, ya he implementado mi aplicación con heroku (el mismo método descrito a continuación) con la misma configuration, y no he tenido este error antes.

Cuando voy a la página de logging heroku, tengo esto:

 2016-07-22T15:07:11.164523+00:00 heroku[slug-compiler]: Slug comstacktion started 

Y si voy a la vista de logging de construcción heroku, tengo el mismo error que el terminal, por ejemplo:

 -----> PHP app detected ! WARNING: Your 'composer.json' contains a non-'stable' setting for 'minimum-stability'. This may cause the installation of unstable versions of runtimes and extensions during this deploy. It is recommended that you always use stability flags instead, even if you have 'prefer-stable' enabled. For more information, see https://getcomposer.org/doc/01-basic-usage.md#stability -----> Bootstrapping... gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now ! Push rejected, failed to compile PHP app. ! Push failed 

Error fatal de PHP: Se ha agotado el tamaño de memory permitido de 1073741824 bytes (se trató de asignar 32 bytes) en phar: ///app/.heroku/php/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php en la línea 52

Error grave: Se ha agotado el tamaño de memory permitido de 1073741824 bytes (se intentó asignar 32 bytes) en phar: ///app/.heroku/php/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php en la línea 52

Consulte https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors para get más información sobre cómo manejar los errores de falta de memory.

El error de límite de memory se debe a que ejecuta el compositor en el banco de testings. Los propios dynos pueden tener 512 MB o 1 GB de RAM, sin intercambio habilitado.

Cuando Heroku procesa tu inserción de Git, entonces Composer se está ejecutando en una instancia especial y más sólida con muchos más resources, por lo que Composer no se queda sin memory allí. Para aplicaciones con muchas dependencies, es totalmente normal que Composer necesite una buena memory RAM al norte de GB para ejecutarse.

Encontré la solución. El problema proviene de heroku-buildpacks-PHP

De hecho, tengo que actualizar este repository localmente, luego presionarlo en mi aplicación heroku (directamente en mi control remoto) para comstackr correctamente php y desplegar mi aplicación en el server heroku.