Deployer - композитор не работает - PullRequest
0 голосов
/ 14 мая 2018

Я использую deployer для развертывания приложения laravel. Все отлично работает, кроме композитора. Всегда есть сообщение

Ничего не устанавливать или обновлять

Когда я открываю ту же папку через терминал, композитор устанавливает все пакеты.

Мне что-то не хватает в файле deploy.php?

deploy.php

<?php
namespace Deployer;

require 'recipe/laravel.php';
require 'recipe/npm.php';
require 'vendor/deployer/recipes/recipe/cachetool.php';



// Project name
set('application', '******');

// Project repository
set('repository', '********');

// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true);

// Shared files/dirs between deploys
add('shared_files', []);
add('shared_dirs', []);

// Writable dirs by web server
add('writable_dirs', []);


// Hosts

host('*********')
    ->user('******')
    ->port(******)
    ->identityFile('********')
    ->set('deploy_path', '/**********/{{application}}');

// Tasks

task('build', function () {
    run('cd {{release_path}} && build');
});

task('npm:build', function () {
    run('cd {{release_path}} && npm run production');
});

task('deploy:composer_install', function () {
    run('cd {{release_path}} ');
    run('composer install');
})->desc('running composer install');

// [Optional] if deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');

// Migrate database before symlink new release.

before('deploy:symlink', 'cachetool:clear:opcache');

after('deploy:symlink', 'artisan:migrate');


after('deploy:symlink', 'deploy:composer_install');

after('deploy:composer_install', 'artisan:db:seed');



after('deploy:update_code', 'npm:install');
after('npm:install', 'npm:build');

Уведомление от Deployer:

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Я думаю, вам нужно проверить файл composer.lock.

Кажется, вы изменили только composer.json и попытаетесь обновить удаленный код, не обновляя composer.lock (с помощью composer update илиcomposer require).

0 голосов
/ 14 мая 2018

Попробуйте вызвать его одной командой, как вы делаете это с npm, чтобы контекст имел правильный путь (ваше приложение): run('cd {{release_path}} && composer install');

В противном случае composer install будет выполняться наначальный (неправильный) путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...