kubernetes-sigs / cluster-api-provider-azure

Cluster API implementation for Microsoft Azure
https://capz.sigs.k8s.io/
Apache License 2.0
295 stars 425 forks source link

Unable to build container image locally #3830

Closed prometherion closed 1 year ago

prometherion commented 1 year ago

/kind bug

What steps did you take and what happened:

Trying to build locally the CAPZ manager image using make docker-build an error occurs.

1.4: Pulling from docker/dockerfile
Digest: sha256:9ba7531bd80fb0a858632727cf7a112fbfd19b17e94c4e84ced81e24ef1a0dbc
Status: Image is up to date for docker/dockerfile:1.4
docker.io/docker/dockerfile:1.4
docker pull docker.io/library/golang:1.20
1.20: Pulling from library/golang
Digest: sha256:37c7d8580e0616e96914a67291b9693fe038ab677eb9b5deb81e541b2322f20f
Status: Image is up to date for golang:1.20
docker.io/library/golang:1.20
docker pull gcr.io/distroless/static:latest
latest: Pulling from distroless/static
Digest: sha256:7198a357ff3a8ef750b041324873960cf2153c11cc50abb9d8d5f8bb089f6b4e
Status: Image is up to date for gcr.io/distroless/static:latest
gcr.io/distroless/static:latest
(unset)
(unset)
DOCKER_BUILDKIT=1 docker build --build-arg goproxy=REDACTED --build-arg ARCH=amd64 --build-arg ldflags="-X 'sigs.k8s.io/cluster-api-provider-azure/version.buildDate=2023-08-14T12:38:06Z' -X 'sigs.k8s.io/cluster-api-provider-azure/version.gitCommit=5b048e8b90d9ff35634c0124583a39f498a3d850' -X 'sigs.k8s.io/cluster-api-provider-azure/version.gitTreeState=dirty' -X 'sigs.k8s.io/cluster-api-provider-azure/version.gitMajor=1' -X 'sigs.k8s.io/cluster-api-provider-azure/version.gitMinor=10' -X 'sigs.k8s.io/cluster-api-provider-azure/version.gitVersion=v1.10.0-107-5b048e8b90d9ff-dirty'" . -t gcr.io//cluster-api-azure-controller-amd64:dev
[+] Building 0.0s (0/0)                                                                                                                                                                                                  docker:default
ERROR: invalid tag "gcr.io//cluster-api-azure-controller-amd64:dev": invalid reference format
make: *** [Makefile:392: docker-build] Error 1

What did you expect to happen:

The image should be built locally, even if gcloud is not able to determine the project ID.

https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/5b048e8b90d9ff35634c0124583a39f498a3d850/Makefile#L145

Anything else you would like to add:

The variable REGISTRY is used here

https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/5b048e8b90d9ff35634c0124583a39f498a3d850/Makefile#L392

Since documentation is not marking gcloud as mandatory, there should be a placeholder, unless the dependency is definitely mandatory, thus documented in the code-base.

Environment:

CecileRobertMichon commented 1 year ago

/assign prometherion

willie-yao commented 1 year ago

/priority important-soon