Добавление конвейеров Jenkins при сборке
Кто-нибудь знает, возможно ли добавить сборку конвейера Jenkins в образ докера Jenkins? Например, у меня может быть файл Jenkinsfile, который определяет мой конвейер в groovie, и я хотел бы добавить его в мое изображение при построении из образа Jenkins.
что-то вроде:
FROM jenkins:latest
ADD ./jobs/Jenkinsfile-pipeline-example $JENKINS_HOME/${someplace}
И будь готов к тому, что этот трубопровод будет запущен.
Благодарю.
2 ответа
Вы можете создать любую работу в Jenkins, передав файл XML, который описывает работу. См. https://support.cloudbees.com/hc/en-us/articles/220857567-How-to-create-a-job-using-the-REST-API-and-cURL
Я сделал это вручную, создав нужное задание в Jenkins, затем добавив config.xml к URL-адресу, и он покажет вам содержимое XML, необходимое для создания конвейерного задания. Сохраните этот XML, и вы сможете доставить его в только что развернутый экземпляр Jenkins.
Я использую систему, подобную этой, чтобы создать несколько сотен рабочих мест на основе наших внешних спецификаций сборки.
Это намного чище использовать Jenkinsfile
вместо этого. Таким образом, по мере развития ваших репозиториев вы можете изменять процесс сборки без необходимости перекомпиляции и повторного развертывания экземпляра Jenkins каждый раз. (меньше работы и меньше времени простоя КИ) Jenkinsfile
в исходном коде позволяет более простую развязку.
Если у вас есть какие-либо вопросы по расширению Jenkins на Docker для дальнейшей работы по сборке NodeJS, Ruby или чего-то еще, я расскажу, как сделать все это в статье.