diff --git a/Dockerfile b/Dockerfile index 1d56b1c33..0aea27256 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ ARG GO_TAG=1.24 +ARG DOCKER_REGISTRY=docker.io # Build the manager binary -FROM --platform=$BUILDPLATFORM golang:${GO_TAG} AS builder +FROM --platform=$BUILDPLATFORM ${DOCKER_REGISTRY}/library/golang:${GO_TAG} AS builder WORKDIR /workspace @@ -29,7 +30,9 @@ ENV GOFIPS140=$FIPS_MODE RUN CGO_ENABLED=0 GO111MODULE=on go build -a -tags timetzdata -o manager main.go # --------------------------------------- -FROM alpine:latest AS etc-builder +ARG DOCKER_REGISTRY=docker.io +FROM ${DOCKER_REGISTRY}/library/alpine:latest AS etc-builder + RUN echo "rabbitmq-cluster-operator:x:1000:" > /etc/group && \ echo "rabbitmq-cluster-operator:x:1000:1000::/home/rabbitmq-cluster-operator:/usr/sbin/nologin" > /etc/passwd diff --git a/Makefile b/Makefile index 1a37f68b5..f1cbdf333 100644 --- a/Makefile +++ b/Makefile @@ -177,11 +177,13 @@ deploy-dev::deploy-namespace-rbac deploy-dev::docker-registry-secret deploy-dev::deploy-manager-dev +CONTAINER ?= docker + GIT_COMMIT := $(shell git rev-parse --short HEAD) deploy-kind: manifests deploy-namespace-rbac ## Load operator image and deploy operator into current KinD cluster @$(call check_defined, OPERATOR_IMAGE, path to the Operator image within the registry e.g. rabbitmq/cluster-operator) @$(call check_defined, DOCKER_REGISTRY_SERVER, URL of docker registry containing the Operator image e.g. registry.my-company.com) - docker buildx build --build-arg=GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) . + $(CONTAINER) buildx build --build-arg=DOCKER_REGISTRY=$(DOCKER_REGISTRY_SERVER) --build-arg=GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) . kind load docker-image $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) kustomize build config/crd | kubectl apply -f - kustomize build config/default/overlays/kind | sed 's@((operator_docker_image))@"$(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT)"@' | kubectl apply -f - @@ -205,18 +207,18 @@ generate-installation-manifest: | $(YTT) docker-build: ## Build the docker image with tag `latest` @$(call check_defined, OPERATOR_IMAGE, path to the Operator image within the registry e.g. rabbitmq/cluster-operator) @$(call check_defined, DOCKER_REGISTRY_SERVER, URL of docker registry containing the Operator image e.g. registry.my-company.com) - docker buildx build --build-arg=GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):latest . + $(CONTAINER) buildx build --build-arg=DOCKER_REGISTRY=$(DOCKER_REGISTRY_SERVER) --build-arg=GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):latest . docker-push: ## Push the docker image with tag `latest` @$(call check_defined, OPERATOR_IMAGE, path to the Operator image within the registry e.g. rabbitmq/cluster-operator) @$(call check_defined, DOCKER_REGISTRY_SERVER, URL of docker registry containing the Operator image e.g. registry.my-company.com) - docker push $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):latest + $(CONTAINER) push $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):latest docker-build-dev: @$(call check_defined, OPERATOR_IMAGE, path to the Operator image within the registry e.g. rabbitmq/cluster-operator) @$(call check_defined, DOCKER_REGISTRY_SERVER, URL of docker registry containing the Operator image e.g. registry.my-company.com) - docker buildx build --build-arg=GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) . - docker push $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) + $(CONTAINER) buildx build --build-arg=DOCKER_REGISTRY=$(DOCKER_REGISTRY_SERVER) --build-arg=GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) . + $(CONTAINER) push $(DOCKER_REGISTRY_SERVER)/$(OPERATOR_IMAGE):$(GIT_COMMIT) # https://github.com/cert-manager/cmctl/releases # Cert Manager now publishes CMCTL independently from cert-manager