如何使用 jenkins-api 将参数传递到我的 Dockerfile
How can I pass parameters using jenkins-api into my Dockerfile
我正在使用 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 ., ...]
根据 doc,docker.build() 有两个参数,第一个是 docker 图像名称,第二个是 docker 文件所在的目录。
第二个参数可以通过给出其他参数检查下面的例子来扩展。
最后一个参数应该是docker文件所在的目录或代码所在的工作目录。
docker.build('myimage', '--build-arg param1=$param1 --build-arg param2=$param2 .')
在单个字符串中添加构建参数并将其添加为第二个参数。
希望这有效。
我正在使用 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 ., ...]
根据 doc,docker.build() 有两个参数,第一个是 docker 图像名称,第二个是 docker 文件所在的目录。
第二个参数可以通过给出其他参数检查下面的例子来扩展。
最后一个参数应该是docker文件所在的目录或代码所在的工作目录。
docker.build('myimage', '--build-arg param1=$param1 --build-arg param2=$param2 .')
在单个字符串中添加构建参数并将其添加为第二个参数。
希望这有效。