2015-03-18 3 views
1

У нас работает Дженкинс сервер, который строит соответствующие рабочие места на Docker контейнере с помощью docker jenkins plugin:Дженкинс запускает работу без мерзавца изменения

Каждое задание проверяет каждые N минут, были ли сделаны изменения на мерзавца. В случае каких-либо изменений создается контейнер-докер, и проект успешно строится на этом контейнере. Наконец, после сборки контейнер докера закрывается.

Проблема: Дженкинс запускает все п минут в новую сборку без каких-либо изменений на мерзавца. Проблема может заключаться в том, что для проверки изменений нет рабочих областей, поскольку контейнер докеров больше не доступен.

Любая идея, как решить эту проблему?

Редактировать: Наш сервер jenkins недоступен из общедоступной сети.

Редактировать: Обход проблемы: Создайте новое задание, которое определенно клонирует проект в рабочее пространство (на хозяине jenkins) и запускает некоторые задания для детей в случае изменения. Разница здесь заключается в том, что мастер сохраняет рабочее пространство и поэтому может проверять различия, тогда как рабочее пространство контейнера докера удаляется после закрытия контейнера.

ответ

0

Зачем проверять каждые N минут на изменения git. Лучше всего создать Jenkins после каждого изменения git. 1. проверьте параметр опроса scm, но не вводите ничего в расписание. enter image description here 2. Теперь перейдите в папку репозитория git и перейдите в папку с крючками, там вы найдете образцы крючков, используйте post-receive.sample, переименуйте его в post-receive, сделайте его как исполняемый, затем в файле напишите

#!/bin/bash 

curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository 

Затем сохраните его. Теперь Дженкинс строит после каждой смены Гит.

+0

К сожалению, нашему серверу недоступна наша общедоступная сеть, так что мы не можем запускать работу извне. Но, конечно, вы совершенно правы. – sfrehse

+0

вы можете настроить динамический адрес ddns с помощью не-ip-подобных сервисов и использовать переадресацию портов и можете полностью использовать его в качестве облачного сервера. – TEDDY

+0

Спасибо. Но проблема в том, что доступен только SSH. – sfrehse

Смежные вопросы