1

我正在使用 javascriptjenkins-api通过 express 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 ., ...]
4

1 回答 1

2

根据文档, docker.build() 有两个参数,第一个是 docker 映像名称,第二个是 dockerfile 所在的目录。

第二个参数可以通过在下面的示例中检查其他参数来扩展。

最后一个参数应该是 dockerfile 所在的目录或代码所在的工作目录。

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

在单个字符串中添加您的构建参数并将其添加为第二个参数。

希望这有效。

于 2019-01-12T13:19:09.243 回答