deployer/composerで遭遇したエラー達
laravel使ってるサイト
久々deploy試してみたら
composerで色々エラーに遭遇したので
書いておく。
memory_limit
composerでmemory_limitのエラーが出た時は
COMPOSER_MEMORY_LIMIT=-1 composer install
的な事やればいいらしい
deployerでやる場合はどうすればいいのかなと思い、調べてみると
vendors.phpに
<?php
/* (c) Anton Medvedev <anton@medv.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Deployer;
desc('Installing vendors');
task('deploy:vendors', function () {
if (!commandExist('unzip')) {
writeln('<comment>To speed up composer installation setup "unzip" command with PHP zip extension https://goo.gl/sxzFcD</comment>');
}
run('cd {{release_path}} && {{bin/composer}} {{composer_options}}');
});
こんな記述があったので
deploy:vendorsのoverride
多分deploy.phpに書けばオーバーライドできるだろうと書いてみたらできた。
set('composer_options', 'install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader');
task('deploy:vendors', function () {
if (!commandExist('unzip')) {
writeln('<comment>To speed up composer installation setup "unzip" command with PHP zip extension https://goo.gl/sxzFcD</comment>');
}
run('cd {{release_path}} && /usr/bin/php -d memory_limit=-1 /usr/local/bin/composer {{composer_options}}');
});
こんなかんじ
You are using an outdated version of Composer.
今度はこんなのが出た
多分Composer2.0にアップデートしなさいよ的な事だと思う。
なのでローカルとリモートでselfアップデートする
composer self-update
You are using the deprecated option “–no-suggest”
手元のバージョンのcomposer_optionsが
/usr/local/bin/composer install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader
ってのがデフォルトみたいで
多分2.0でdeprecatedになってるのがエラー出た?ようなので
‘composer_options’もsetする。
上のdeploy.phpと同じだけどこの部分
set('composer_options', 'install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader');
your PHP version does not satisfy that requirement.
今度はphpのバージョンが違うと怒られる。
laradock使っていて
laradockのphp-fpmだと7.1とか7.2とかまでしか指定出来ない?と思うので
どうしたもんかと思っていたら
composer.jsonでバージョン指定
composer.jsonに
~~
"config": {
"platform": {
"php": "7.1.30"
}
},
~~
こんな感じで書いとけばよくは分かってないけど
うまい事やってくれるっぽい。
php artisan package:discover –ansi / Undefined index: name
今度はこれでエラー。
laravel/frameworkのアップデート
なんかcomposer2.0以降でのエラーらしい。
laravel側アップデートすれば解消するとの事で
アップデートする。
各メジャーバージョンでパッチ的なのがあるあらしいので
5.8.30 -> 5.8.38
みたいな感じマイナー部分?だけアップデートする。
依存関係でアラートでたらその部分もアップデート必要。
で、無事deployできました。