Description
Steps to reproduce the issue:
I'm unable to use minikube image build
with a Dockerfile requiring build-args, using the docker runtime. I was unable to concoct a --build-opt
value that would result in a correct docker build --build-arg key=value
command line.
Minikube's underlying implementation takes the --build-opt
arguments, prefixes them with --
and then appends the result as a single argument:
minikube/pkg/minikube/cruntime/docker.go
Lines 271 to 273 in 769ee32
The other container runtimes do something similar.
Docker's command-line parser requires that the --build-arg
key-value pairs are provided as a separate argument. It doesn't seem to support specifying build-args using a single-argument style like --build-arg=key=value
.
$ minikube --alsologtostderr image build --build-opt=build-arg=BUILDPLATFORM=linux .
[...]
I0901 09:40:27.239205 86641 build_images.go:137] Building image from path: /var/folders/mx/_6wvyq4n3psb4nj95d8ycpv80000gn/T/build.157572332.tar
I0901 09:40:27.240484 86641 ssh_runner.go:149] Run: sudo mkdir -p /var/lib/minikube/build
I0901 09:40:27.245954 86641 ssh_runner.go:316] scp /var/folders/mx/_6wvyq4n3psb4nj95d8ycpv80000gn/T/build.157572332.tar --> /var/lib/minikube/build/build.157572332.tar (2048 bytes)
I0901 09:40:27.259538 86641 ssh_runner.go:149] Run: sudo mkdir -p /var/lib/minikube/build/build.157572332
I0901 09:40:27.264557 86641 ssh_runner.go:149] Run: sudo tar -C /var/lib/minikube/build/build.157572332 -xf /var/lib/minikube/build/build.157572332.tar
I0901 09:40:27.269088 86641 docker.go:249] Building image: /var/lib/minikube/build/build.157572332
I0901 09:40:27.269162 86641 ssh_runner.go:149] Run: docker build /var/lib/minikube/build/build.157572332 --build-arg=BUILDPLATFORM=linux
unknown flag: --build-arg=BUILDPLATFORM
See 'docker build --help'.
[...]
It seems worth adding an additional --build-arg
flag for minikube image build
:
- for the docker runtimes and crio (pod man) runtimes, it would add each entry with a prior
--build-arg
- for containerd (buildkit), it would prefix each entry with `--opt' 'build-arg:'