0

似乎从 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 两次,这是不必要的开销。

有没有更好的方法来做到这一点?

4

1 回答 1

1

我的部署钩子:

cd "$DEPLOY_PATH"
php artisan down

git reset --hard HEAD
git clean -fd
git pull origin "$BRANCH"

composer install --no-dev --profile
composer dump-autoload --optimize --profile
php artisan optimize --force
php artisan config:cache
php artisan route:cache
php artisan migrate --force
php artisan up
于 2015-06-06T00:04:08.267 回答