Что такое ключевое слово «контейнер» в Jenkins? - PullRequest
0 голосов
/ 09 октября 2019

Я недавно унаследовал кодовую базу с некоторыми файлами Jenkins. В одном из них я столкнулся с этим синтаксисом

            stage('Prepare database for integration tests') {
                steps {
                    container('postgres') {
                        sh "..."
                    }
                }
            }

Наш Jenkins работает на Openshift, и у модуля есть несколько контейнеров, включая этот postgres. Однако я не могу найти никаких ссылок для использования контейнера или подключения к контейнеру с container('containerName') таким образом.

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

                        container('az-cli') {
                            try {
                                sh 'ls'
                            } catch (error) {
                                throw error
                            }
                        }

И ls перечислил содержимое в хранилище кода, а не контейнер. Ясно, что container делает не то, что я думал, и я не могу найти никакой документации по этому вопросу. Кто-нибудь знает, что это должно делать?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 09 октября 2019

Ок, видимо, это происходит из плагина Kubernetes. Дополнительная документация содержится в этом репозитории jenkins github и в этой документации jenkins .

И это тоже сработало, но команда 'ls' обманула. Когда я запустил фактическую команду Azure, я увидел результат команды, а также увидел журналы контейнера.

Спасибо всем.

0 голосов
/ 09 октября 2019

Если вы хотите использовать контейнер для выполнения шага, вы можете сделать это следующим образом: https://jenkins.io/doc/book/pipeline/docker/#using-multiple-containers

Я никогда раньше не видел ключевое слово "container".

0 голосов
/ 09 октября 2019

Если метод контейнера (...) не задокументирован, он, вероятно, загружается пользовательской библиотекой .

Проверьте аннотацию @Library вваш конвейер или если он не является частью автоматически загружаемой библиотеки. Затем вы найдете Groovy файл, в котором он объявлен.

Дополнительная информация на https://jenkins.io/doc/book/pipeline/shared-libraries/#using-libraries

...