Угловая CLI & Jenkins непрерывные полномочия интеграции

Я использую jenkins для непрерывной интеграции с угловым cli, вот мои шаги:

  • Продвиньте к GitHub
  • Получение по запросу Jenkins код из моего репозитория GitHub, сделать npm install и ng build

Все прекрасно до здесь.

Моя проблема состоит в том, когда я пытаюсь скопировать всю сборку файлов в /var/lib/jenkins/workspace/mywebsite/dist кому: /var/www/html/mywebsite

Этим каталогом управляет Nginx.

У меня есть эта ошибка: cp: cannot create regular file '/var/www/html/mywebsite/./inline.bundle.js': Permission denied

Кто-то может помочь мне?

Спасибо

1
задан 7 March 2018 в 19:07

1 ответ

К сожалению, Вы не можете только легко скопировать данные. Скорее почему бы не позволить NGINX пойти выбирают данные через символьную ссылку?

Создайте символьную ссылку целевого каталога сборки в /var/www вместо этого:

sudo mv /var/www/html /var/www/html.old
sudo ln -s /var/lib/jenkins/workspace/mywebsite/dist /var/www/html

Это должно, предполагая, что NGINX может также считать данные в /var/lib/jenkins/workspace/mywebsite/dist папка, обойдите потребность позволить Jenkins непосредственно скопировать вещи в папку вне ее управления.

Обратите внимание, что я настоятельно рекомендую, чтобы Вы использовали /var/www/domain.tld, замена domain.tld с Вашим фактическим сайтом, и затем используют это для корня документа в nginx конфигурация сайта вместо /var/www/html. Существует запись Ловушек Конфигурации NGINX о потенциальных проблемах использования корня документа по умолчанию, который релевантен здесь. Это конкретно указывает:

Использование корня документа по умолчанию

Пакеты NGINX, которые существуют в Ubuntu, Debian или других операционных системах, как легкий к установке пакет, будут часто обеспечивать конфигурационный файл 'по умолчанию' как пример методов конфигурации и будут часто включать корень документа для содержания основного файла HTML.

Большинство этих упаковочных систем не проверяет, чтобы видеть, изменяются ли файлы или существуют в корне документа по умолчанию, который может привести к потере кода, когда пакеты обновлены. Опытные системные администраторы знают, что нет никакого ожидания данных в корне документа по умолчанию, чтобы остаться нетронутым во время обновлений.

Вы не должны использовать документ по умолчанию, поддерживают любые критические по отношению к сайту файлы. Нет никакого ожидания, что корень документа по умолчанию оставит нетронутым система и существует чрезвычайно высокая возможность, что Ваши критические данные сайта могут быть потеряны после обновлений и обновлений пакетов NGINX для Вашей операционной системы.

0
ответ дан 8 December 2019 в 02:07

Другие вопросы по тегам:

Похожие вопросы: