Laravel Непрерывное развертывание с GitHub webhook - PullRequest
1 голос
/ 03 апреля 2020

У меня есть приложение Laravel на сервере Ubuntu, работающее nginx.

Я хочу настроить систему компакт-дисков, подобную Netlify, для stati c сайтов, чтобы на каждом git push сервер должен автоматически pull и запускать сценарии build, что было бы неплохо ?.

Я настраиваю GitHub webhook так, чтобы на каждом pu sh он запускал сценарий bash с именем deploy.sh на сервере.

Это мой deploy.sh:

#!/bin/bash

# activate maintenance mode
php artisan down

# update source code
git pull

npm run build

# update PHP dependencies
#composer install --no-interaction --no-dev --prefer-dist

php artisan migrate --force

php artisan up

Пока все хорошо.

Но сценарий завершается ошибкой при сценарии npm run build, и Я получаю этот вывод:

> npm run production

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn sh
npm ERR! file sh
npm ERR! path sh
npm ERR! errno ENOENT
npm ERR! @ build: `npm run production`
npm ERR! spawn sh ENOENT
npm ERR! 
npm ERR! Failed at the @ build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Когда я запускаю скрипт в терминале [через ssh] вручную, он работает, даже как пользователь www-data!

Я тестировал его запуск как www-data пользователь, запустив sudo -H -u www-data ./deploy.sh, и это сработало! Так что я озадачен тем, почему он не работает при запуске webhook [который запускается от имени пользователя www-data, что я подтвердил, вставив whoami в скрипт] ...

Любая помощь будет принята с благодарностью , как я пытаюсь понять это уже давно ...

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