Как я могу передать параметры с помощью jenkins-api в мой Dockerfile - PullRequest
0 голосов
/ 11 января 2019

Я использую jaavscript jenkins-api для запуска сборки через экспресс-API следующим образом

jenkins.build_with_params('jobname', {param1: "xxxxxx", param2: "xxxxx"}, function(err, data) {
    if (err){

        console.log(err);
        res.json({success: false, msg: err});
    }
    else {
        console.log(data);
        res.json({success: true, msg: data});
    }

В этой работе я извлекаю код из github, а затем выполняю

docker.build('myimage',' --build-arg param1=$param1 .',' --build-arg param2=$param2 .')

В моем Dockerfile у меня есть

ARG param1
ARG oaram2

Я получаю

hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.jenkinsci.plugins.docker.workflow.Docker.build() is applicable for argument types: (java.lang.String, java.lang.String java.lang.String) values: [myimage,  --build-arg param1=$param1 ., ...]

1 Ответ

0 голосов
/ 12 января 2019

В соответствии с doc docker.build () принимает два параметра: первый - имя образа docker, а второй - каталог, в котором находится файл docker.

2-й параметр можно расширить, проверив другие параметры ниже в примере.

Последний параметр должен быть каталогом, в котором присутствует dockerfile, или рабочим каталогом, в котором присутствует ваш код.

docker.build('myimage', '--build-arg param1=$param1 --build-arg param2=$param2 .')

Добавьте ваши аргументы сборки в одну строку и добавьте их как второй параметр.

Надеюсь, это сработает.

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