web-dev-qa-db-ja.com

Jenkins Pipeline docker.build()がエラー「 "docker build"はちょうど1つの引数を必要とします」を与える

この最小限のJenkins Pipelineスクリプト

_node {
  docker.build("foo", "--build-arg x=y")
}
_

紛らわしいエラーが表示されます

「docker build」には、厳密に1つの引数が必要です。

しかし、ドキュメントによると、docker.build()のシグネチャはbuild(image[, args])です(Jenkins _/job/dockerbug/pipeline-syntax/globals#docker_から)

build(image[, args])

Docker buildを実行して、現在のディレクトリのDockerfileから指定されたイメージを作成してタグ付けします。 _'-f Dockerfile.other --pull --build-arg http_proxy=http://192.168.1.1:3128 .'_などの追加の引数を追加できます。 Dockerビルドと同様に、引数はビルドコンテキストで終了する必要があります。結果のImageオブジェクトを返します。ビルドにFROMフィンガープリントを記録します。

どうしたの?

15
John Carter

私の混乱は、エラーメッセージが実際にはJenkinsではなくDockerから来ているためです。

ビルドコンテキストを指定しないと、Dockerはこのエラーを返します(上記のドキュメントに記載されています)。

修正は、例に従ってargsパラメーターの最後に.を追加するだけです。例:

node {
  docker.build("foo", "--build-arg x=y .")
}

docker: "build"には1つの引数が必要です。「docker build --help」を参照してください

31
John Carter