Как использовать dockerhub -tification-plugin в скриптовом конвейере Jenkins? - PullRequest
0 голосов
/ 03 октября 2018

Я хочу запустить конвейер, когда новый образ помещается в концентратор докеров.Я установил dockerhub -tification-plugin .Если я использую веб-интерфейс, можно указать репо-концентратор докера:

enter image description here

Я пытался использовать генератор фрагментов конвейера, но он работает неправильно:если я указываю репо, он игнорируется в сгенерированном коде.Например:

enter image description here

генерирует код:

properties([pipelineTriggers([[$class: 'DockerHubTrigger', options: []]])])

Как вы можете видеть, в сгенерированном репозитории Docker Hub не указанокод.

1 Ответ

0 голосов
/ 14 ноября 2018

Правильный способ сделать это - написать свои свойства, как показано ниже:

properties([
    pipelineTriggers([[$class: 'DockerHubTrigger', options: [[$class: 'TriggerOnSpecifiedImageNames', repoNames: ["YOUR_REPO_NAME"].toSet()]]]])
])

Сначала обратите внимание на дополнительные скобки вокруг значения параметров.Это связано с тем, как в jenkins оцениваются отличные скрипты.

Но зачем устанавливать?

Согласно классу javadoc TriggerOnSpecifiedImageNames имеется три конструктора: без параметров, с переменными строк и с коллекцией.Но groovy будет использовать отражение для создания экземпляра этого класса, что означает, что будет вызван конструктор по умолчанию, а затем будут применены соответствующие свойства.И это приводит нас к toSet(), потому что, как вы можете видеть в javadoc, есть установщик для свойства имен репо, который выглядит следующим образом: setRepoNames(Set<String> repoNames).

...