Используйте Docker Pipeline Plugin без интерактивного режима - PullRequest
1 голос
/ 16 октября 2019

Я пытаюсь использовать докер с конвейером Jenkins Scripted и столкнулся с несколькими проблемами.

Если я использую его в sh docker ..., это приведет к ошибке

command not found docker

  1. Я пытался исправить это, изменив параметр «Установка» в инструменте глобальной конфигурации, но безуспешно.

  2. Я пытаюсь использовать подключаемый модуль Docker.

def run_my_stage(String name, String cmd, String commit) {
return {
    stage(name) {
        node("builder") {
                docker.withRegistry("192.168.1.33:5000") {
                    def myimg = docker.image("my-img")
                    sh "docker pull ${myimg.imageName()}"
                    sh "docker run ${cmd}"
                }
            }
        }
}

Где cmd == --user=\$UID --rm -t -v ./build/:/home/user/build 192.168.1.33:5000/my-img

Я использую этот код для параллельных этапов (список сгенерированных этаповдинамически) и получил эту ошибку

java.net.MalformedURLException: no protocol: 192.168.1.33:5000

Как правильно использовать этот плагин? Я нашел много примеров с withRun и другими методами из docker, но мне не нужно запускать какие-либо команды внутри этого образа, у меня есть команда в Dockerfile (поэтому он встроен для моего контейнера).

Ответы [ 3 ]

2 голосов
/ 16 октября 2019

Вы пропустили протокол, реестр должен быть https://192.168.1.33:5000

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

Сама ошибка имеет ответ:).

java.net.MalformedURLException: нет протокола : 192.168.1.33:5000

Вам не хватает protocol в пользовательском реестре. См. https://jenkins.io/doc/book/pipeline/docker/#custom-registry

def run_my_stage(String name, String cmd, String commit) {
return {
    stage(name) {
        node("builder") {
                docker.withRegistry("https://192.168.1.33:5000") {
                    def myimg = docker.image("my-img")
                    sh "docker pull ${myimg.imageName()}"
                    sh "docker run ${cmd}"
                }
            }
        }
}
0 голосов
/ 16 октября 2019

Также у меня проблема с относительным путем, но исправлено простое добавление pwd перед относительным путем к build.

Thx @ yzT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...