Compositor post-install-cmd no ejecutándose con git hook

por alguna razón, mi post-install-cmd no parece ejecutarse cuando el compositor se ejecuta desde mi deploy hook.

Si ejecuto la composer install través de ssh en el cuadro inmediatamente después, el process de installation se ejecuta nuevamente, pero ejecuta el script de installation posterior.

Para mayor claridad, es el 'jakoch / phantomjs-installer' que quiero ejecutar.

Como ve, mi compositor está configurado y listo.

 { "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "type": "project", "require": { "laravel/framework": "5.0.*", "jakoch/phantomjs-installer": "1.9.8", "illuminate/html": "~5.0", "guzzlehttp/guzzle": "~5.0" }, "require-dev": { "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1" }, "autoload": { "classmap": [ "database", "app/libraries", "app/Models" ], "psr-4": { "App\\": "app/" } }, "autoload-dev": { "classmap": [ "tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize", "PhantomInstaller\\Installer::installPhantomJS" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize", "PhantomInstaller\\Installer::installPhantomJS" ], "post-create-project-cmd": [ "php -r \"copy('.env.example', '.env');\"", "php artisan key:generate" ] }, "config": { "prefernetworking-install": "dist" } } 

Y la salida del gancho de recepción de posts ejecuta la installation del compositor de la siguiente manera:

 remote: Checking composer.json for Composer dependency... remote: Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/var/lib/openshift/5555f3255973ca3b9c00018a/php/usr/bin/composer self-update" to get the latest version. remote: Loading composer repositories with package information remote: Installing dependencies (including require-dev) from lock file remote: - Installing react/promise (v2.2.0) remote: Loading from cache remote: remote: - Installing guzzlehttp/streams (3.0.0) remote: Loading from cache remote: remote: - Installing guzzlehttp/ringphp (1.0.7) remote: Loading from cache remote: remote: - Installing guzzlehttp/guzzle (5.2.0) remote: Loading from cache remote: remote: - Installing vlucas/phpdotenv (v1.1.0) remote: Loading from cache remote: remote: - Installing symfony/var-dumper (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/translation (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/security-core (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/routing (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/process (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/http-foundation (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/event-dispatcher (v2.6.7) remote: Loading from cache remote: remote: - Installing psr/log (1.0.0) remote: Loading from cache remote: remote: - Installing symfony/debug (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/http-kernel (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/finder (v2.6.7) remote: Loading from cache remote: remote: - Installing symfony/console (v2.6.7) remote: Loading from cache remote: remote: - Installing swiftmailer/swiftmailer (v5.4.0) remote: Loading from cache remote: remote: - Installing nikic/php-parser (v1.3.0) remote: Loading from cache remote: remote: - Installing jakub-onderka/php-console-color (0.1) remote: Loading from cache remote: remote: - Installing jakub-onderka/php-console-highlighter (v0.3.1) remote: Loading from cache remote: remote: - Installing dnoegel/php-xdg-base-dir (0.1) remote: Loading from cache remote: remote: - Installing psy/psysh (v0.4.4) remote: Loading from cache remote: remote: - Installing nesbot/carbon (1.19.0) remote: Loading from cache remote: remote: - Installing mtdowling/cron-expression (v1.0.4) remote: Loading from cache remote: remote: - Installing monolog/monolog (1.13.1) remote: Loading from cache remote: remote: - Installing league/flysystem (1.0.3) remote: Loading from cache remote: remote: - Installing jeremeamia/superclosure (2.1.0) remote: Loading from cache remote: remote: - Installing ircmaxell/password-compat (v1.0.4) remote: Loading from cache remote: remote: - Installing doctrine/inflector (v1.0.1) remote: Loading from cache remote: remote: - Installing danielstjules/stringy (1.9.0) remote: Loading from cache remote: remote: - Installing symfony/filesystem (v2.6.7) remote: Loading from cache remote: remote: - Installing classpreloader/classpreloader (1.3.0) remote: Loading from cache remote: remote: - Installing laravel/framework (v5.0.31) remote: Loading from cache remote: remote: - Installing illuminate/html (v5.0.0) remote: Loading from cache remote: remote: - Installing jakoch/phantomjs-installer (1.9.8) remote: Loading from cache remote: remote: - Installing phpdocumentor/reflection-docblock (2.0.4) remote: Loading from cache remote: remote: - Installing symfony/yaml (v2.6.7) remote: Loading from cache remote: remote: - Installing sebastian/recursion-context (1.0.0) remote: Loading from cache remote: remote: - Installing sebastian/exporter (1.2.0) remote: Loading from cache remote: remote: - Installing sebastian/diff (1.3.0) remote: Loading from cache remote: remote: - Installing sebastian/comparator (1.1.1) remote: Loading from cache remote: remote: - Installing doctrine/instantiator (1.0.4) remote: Loading from cache remote: remote: - Installing phpspec/prophecy (v1.4.1) remote: Loading from cache remote: remote: - Installing phpspec/php-diff (v1.0.2) remote: Loading from cache remote: remote: - Installing phpspec/phpspec (2.2.0) remote: Loading from cache remote: remote: - Installing phpunit/php-token-stream (1.4.1) remote: Loading from cache remote: remote: - Installing sebastian/version (1.0.5) remote: Loading from cache remote: remote: - Installing sebastian/global-state (1.0.0) remote: Loading from cache remote: remote: - Installing sebastian/environment (1.2.2) remote: Loading from cache remote: remote: - Installing phpunit/php-text-template (1.2.0) remote: Loading from cache remote: remote: - Installing phpunit/phpunit-mock-objects (2.3.1) remote: Loading from cache remote: remote: - Installing phpunit/php-timer (1.0.5) remote: Loading from cache remote: remote: - Installing phpunit/php-file-iterator (1.4.0) remote: Loading from cache remote: remote: - Installing phpunit/php-code-coverage (2.0.16) remote: Loading from cache remote: remote: - Installing phpunit/phpunit (4.6.6) remote: Loading from cache remote: remote: symfony/var-dumper suggests installing ext-symfony_debug () remote: symfony/translation suggests installing symfony/config () remote: symfony/security-core suggests installing symfony/expression-language (For using the expression voter) remote: symfony/security-core suggests installing symfony/validator (For using the user password constraint) remote: symfony/routing suggests installing doctrine/annotations (For using the annotation loader) remote: symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader) remote: symfony/routing suggests installing symfony/expression-language (For using expression matching) remote: symfony/event-dispatcher suggests installing symfony/dependency-injection () remote: symfony/http-kernel suggests installing symfony/browser-kit () remote: symfony/http-kernel suggests installing symfony/class-loader () remote: symfony/http-kernel suggests installing symfony/config () remote: symfony/http-kernel suggests installing symfony/dependency-injection () remote: psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.) remote: monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) remote: monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) remote: monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ requinetworking)) remote: monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) remote: monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server) remote: monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) remote: monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) remote: monolog/monolog suggests installing videlalvaro/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) remote: league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2) remote: league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3) remote: league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage) remote: league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching) remote: league/flysystem suggests installing league/flysystem-copy (Allows you to use Copy.com storage) remote: league/flysystem suggests installing league/flysystem-dropbox (Allows you to use Dropbox storage) remote: league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem) remote: league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files) remote: league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib) remote: league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage) remote: league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter) remote: league/flysystem suggests installing pnetworkingis/pnetworkingis (Allows you to use Pnetworkingis for caching) remote: laravel/framework suggests installing aws/aws-sdk-php (Requinetworking to use the SQS queue driver and SES mail driver (~2.4).) remote: laravel/framework suggests installing doctrine/dbal (Requinetworking to rename columns and drop SQLite columns (~2.4).) remote: laravel/framework suggests installing iron-io/iron_mq (Requinetworking to use the iron queue driver (~1.5).) remote: laravel/framework suggests installing league/flysystem-aws-s3-v2 (Requinetworking to use the Flysystem S3 driver (~1.0).) remote: laravel/framework suggests installing league/flysystem-rackspace (Requinetworking to use the Flysystem Rackspace driver (~1.0).) remote: laravel/framework suggests installing pda/pheanstalk (Requinetworking to use the beanstalk queue driver (~3.0).) remote: laravel/framework suggests installing pnetworkingis/pnetworkingis (Requinetworking to use the networkingis cache and queue drivers (~1.0).) remote: phpdocumentor/reflection-docblock suggests installing dflydev/markdown (~1.0) remote: phpdocumentor/reflection-docblock suggests installing erusev/parsedown (~1.0) remote: phpspec/phpspec suggests installing phpspec/nyan-formatters (~1.0 – Adds Nyan formatters) remote: sebastian/global-state suggests installing ext-uopz (*) remote: phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1) remote: phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) 

Pero nunca instala el file real, y necesito composer install y ejecutar manualmente la composer install , que funciona:

 [teampro-propduck.rhcloud.com repo]\> composer install Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/var/lib/openshift/5555f3255973ca3b9c00018a/php/usr/bin/composer self-update" to get the latest version. Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating autoload files Generating optimized class loader Compiling common classes - Installing phantomjs (1.9.8) Loading from cache 

Hasta ahora, la respuesta es ejecutar una composer update adicional en un punto posterior del desplegable. Entonces esencialmente se ejecuta dos veces.

Definitivamente es una solución, en lugar de una solución, pero podría hacer que la gente se mueva en lugar de los 3 días que pasé completamente atrapado en ella.

Se actualizará si consigo algo más con una solución adecuada.