似乎从 Laravel Envoyer 部署时,我们无法在运行 composer install/update 之前进行清除编译,因此 Envoyer 正在从缓存中加载包。
这显然可以通过 ssh 手动修复到发布文件夹并运行:
php artisan clear-compiled
composer update
这是大多数时候的问题。我在升级时遇到了这个问题:pda/pheanstalk
由于 envoyer 不断从缓存中加载以前的版本,因此它不起作用。
目前我的临时修复是运行:
cd {{release}}
php artisan clear-compiled
composer update
php artisan optimize
部署钩子,但我只能在 envoyer 的初始 composer-install 钩子之后运行它,因为发布文件夹中没有编译文件。
现在还可以,但问题是我的部署任务正在运行 composer install/update 两次,这是不必要的开销。
有没有更好的方法来做到这一点?