【问题标题】:How can I pass parameters using jenkins-api into my Dockerfile如何使用 jenkins-api 将参数传递到我的 Dockerfile
【发布时间】:2019-01-11 16:19:10
【问题描述】:

我正在使用 javascript jenkins-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 ., ...]

【问题讨论】:

    标签: docker jenkins dockerfile args jenkins-api


    【解决方案1】:

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

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

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

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

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

    希望这行得通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-19
      • 2022-07-27
      • 2019-02-02
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多