Yesterday I updated a CakePHP app as I routinely do and a strange error popup-ed in the composer install stage of my docker build:
Failed to extract wyrihaximus/twig-view: (9) unzip -qq '/var/www/html/vendor/composer/tmp-d8e7d258ae112df88e50fadda2ad540d' -d '/var/www/html/vendor/composer/c379dd11'
unzip: cannot find or open /var/www/html/vendor/composer/tmp-d8e7d258ae112df88e50fadda2ad540d.
This most likely is due to a custom installer plugin not handling the returned Promise from the downloader
See https://github.com/composer/installers/commit/5006d0c28730ade233a8f42ec31ac68fb1c5c9bb for an example fix
Failed to extract cakephp/bake: (9) unzip -qq '/var/www/html/vendor/composer/tmp-0ea29ff25d5dad521623339cec9bf3bb' -d '/var/www/html/vendor/composer/cc137293'
The same happened with cakephp/debug_kit, cakephp/migrations, cakephp/bake and josegonzalez/cakephp-upload dependencies.
After researching and testing I realized Composer had updated to version 2 a couple of days ago and in my Dockerfile I installed it with the command:
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
Clearly this brought Coposer's latest version and broke some dependencies. The solution was to freeze Composer's version download to 1.x:
RUN curl -sS https://getcomposer.org/composer-1.phar -o composer.phar
Doing this also required me to run php composer.phar install instead of composer install.
And done, the app was good and running once again!
Top comments (3)
Thanks for this. I am in the same situation with my Dockerfile.
Instead of downloading the phar file, you can still install the binary so you can keep using
composer install.getcomposer.org/doc/faqs/how-to-in...
Change
php composer-setup.php --quietto
php composer-setup.php --quiet --filename=composer --version=1.10.19Nice one Tony.
Welcome to DEV as well!
You are my hero