diff --git a/Makefile b/Makefile index 4c35709dab..a9977fbbb1 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,10 @@ -# Loki Project Makefile +# ______ ____ __ __ _ +# / ____/________ _/ __/___ _____ ____ _ / / ____ / /__(_) +# / / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ / / / __ \/ //_/ / +# / /_/ / / / /_/ / __/ /_/ / / / / /_/ / / /___/ /_/ / ,< / / +# \____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ /_____/\____/_/|_/_/ # +# Loki Project Makefile SHELL = /usr/bin/env bash -o pipefail @@ -66,7 +71,9 @@ OCI_PUSH_ARGS := -o type=registry OCI_PUSH := docker push OCI_TAG := docker tag -ifeq ($(CI), true) +ifeq ($(CI),true) + # ensure buildx is set up + _ := $(shell ./tools/ensure-buildx-builder.sh) OCI_BUILD := DOCKER_BUILDKIT=1 docker buildx build $(OCI_PLATFORMS) $(OCI_BUILD_ARGS) else OCI_BUILD := DOCKER_BUILDKIT=1 docker build $(OCI_BUILD_ARGS) @@ -145,17 +152,8 @@ DOC_FLAGS := $(DOC_SOURCES_PATH)/shared/configuration.md # Docker # ########## -# RM is parameterized to allow CircleCI to run builds, as it -# currently disallows `docker run --rm`. This value is overridden -# in circle.yml -RM := --rm -# TTY is parameterized to allow Google Cloud Builder to run builds, -# as it currently disallows TTY devices. This value needs to be overridden -# in any custom cloudbuild.yaml files -TTY := --tty - binfmt: - docker run --privileged linuxkit/binfmt:v0.6 + docker run --privileged linuxkit/binfmt:v0.6 ################ # Main Targets # @@ -180,7 +178,7 @@ logcli: cmd/logcli/logcli ## build logcli executable logcli-debug: cmd/logcli/logcli-debug ## build debug logcli executable logcli-image: ## build logcli docker image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/logcli:$(IMAGE_TAG) -f cmd/logcli/Dockerfile . + $(OCI_BUILD) -t $(LOGCLI_IMAGE) -f cmd/logcli/Dockerfile . cmd/logcli/logcli: CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./cmd/logcli @@ -615,90 +613,79 @@ define push-image $(call push,$(1),main) endef -# promtail +# Promtail image promtail-image: ## build the promtail docker image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/promtail:$(IMAGE_TAG) -f clients/cmd/promtail/Dockerfile . + $(OCI_BUILD) -t $(PROMTAIL_IMAGE) -f clients/cmd/promtail/Dockerfile . promtail-image-cross: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/promtail:$(IMAGE_TAG) -f clients/cmd/promtail/Dockerfile.cross . - + $(OCI_BUILD) -t $(PROMTAIL_IMAGE) -f clients/cmd/promtail/Dockerfile.cross . promtail-debug-image: ## build the promtail debug docker image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/promtail:$(IMAGE_TAG)-debug -f clients/cmd/promtail/Dockerfile.debug . - + $(OCI_BUILD) -t $(PROMTAIL_IMAGE)-debug -f clients/cmd/promtail/Dockerfile.debug . promtail-push: promtail-image-cross $(call push-image,promtail) -# loki +# Loki image loki-image: ## build the loki docker image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki:$(IMAGE_TAG) -f cmd/loki/Dockerfile . + $(OCI_BUILD) -t $(LOKI_IMAGE) -f cmd/loki/Dockerfile . loki-image-cross: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki:$(IMAGE_TAG) -f cmd/loki/Dockerfile.cross . - -loki-debug-image: ## build the debug loki docker image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki:$(IMAGE_TAG)-debug -f cmd/loki/Dockerfile.debug . - + $(OCI_BUILD) -t $(LOKI_IMAGE) -f cmd/loki/Dockerfile.cross . +loki-debug-image: ## build the loki debug docker image + $(OCI_BUILD) -t $(LOKI_IMAGE)-debug -f cmd/loki/Dockerfile.debug . loki-push: loki-image-cross $(call push-image,loki) -# loki-canary -loki-canary-image: ## build the loki canary docker image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-canary:$(IMAGE_TAG) -f cmd/loki-canary/Dockerfile . +# Canary image +loki-canary-image: ## build the canary docker image + $(OCI_BUILD) -t $(LOKI_CANARY_IMAGE) -f cmd/loki-canary/Dockerfile . loki-canary-image-cross: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-canary:$(IMAGE_TAG) -f cmd/loki-canary/Dockerfile.cross . + $(OCI_BUILD) -t $(LOKI_CANARY_IMAGE) -f cmd/loki-canary/Dockerfile.cross . +loki-canary-push: loki-canary-image-cross + $(OCI_PUSH) $(LOKI_CANARY_IMAGE) loki-canary-image-cross-boringcrypto: $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-canary-boringcrypto:$(IMAGE_TAG) -f cmd/loki-canary-boringcrypto/Dockerfile . -loki-canary-push: loki-canary-image-cross - $(OCI_PUSH) $(IMAGE_PREFIX)/loki-canary:$(IMAGE_TAG) loki-canary-push-boringcrypto: loki-canary-image-cross-boringcrypto $(OCI_PUSH) $(IMAGE_PREFIX)/loki-canary-boringcrypto:$(IMAGE_TAG) -helm-test-image: ## build the helm test image + +# Helm test image +helm-test-image: ## build the helm test docker image $(OCI_BUIILD) -t $(IMAGE_PREFIX)/loki-helm-test:$(IMAGE_TAG) -f production/helm/loki/src/helm-test/Dockerfile . -helm-test-push: helm-test-image ## push the helm test image +helm-test-push: helm-test-image $(OCI_PUSH) $(IMAGE_PREFIX)/loki-helm-test:$(IMAGE_TAG) -# loki-querytee -loki-querytee-image: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-query-tee:$(IMAGE_TAG) -f cmd/querytee/Dockerfile . +# Query Tee image +loki-querytee-image: ## build the querytee docker image + $(OCI_BUILD) -t $(QUERY_TEE_IMAGE) -f cmd/querytee/Dockerfile . loki-querytee-image-cross: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-query-tee:$(IMAGE_TAG) -f cmd/querytee/Dockerfile.cross . + $(OCI_BUILD) -t $(QUERY_TEE_IMAGE) -f cmd/querytee/Dockerfile.cross . loki-querytee-push: loki-querytee-image-cross - $(OCI_PUSH) $(IMAGE_PREFIX)/loki-query-tee:$(IMAGE_TAG) + $(OCI_PUSH) $(QUERY_TEE_IMAGE) -# migrate-image -migrate-image: +# Migrate image +migrate-image: ## build the migrate docker image $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-migrate:$(IMAGE_TAG) -f cmd/migrate/Dockerfile . # LogQL Analyzer -logql-analyzer-image: ## build the LogQL Analyzer image - $(OCI_BUILD) -t $(IMAGE_PREFIX)/logql-analyzer:$(IMAGE_TAG) -f cmd/logql-analyzer/Dockerfile . -logql-analyzer-push: logql-analyzer-image ## push the LogQL Analyzer image +logql-analyzer-image: ## build the logql analyzer docker image + $(OCI_BUILD) -t $(LOGQL_ANALYZER_IMAGE) -f cmd/logql-analyzer/Dockerfile . +logql-analyzer-push: logql-analyzer-image $(call push-image,logql-analyzer) - -# build-image -ensure-buildx-builder: -ifeq ($(CI),true) - ./tools/ensure-buildx-builder.sh -else - @echo "skipping buildx setup" -endif - -build-image: ensure-buildx-builder - $(OCI_BUILD) --build-arg=GO_VERSION=$(GO_VERSION) -t $(IMAGE_PREFIX)/loki-build-image:$(BUILD_IMAGE_TAG) ./loki-build-image -build-image-push: build-image ## push the docker build image +# Build image +build-image: ## build the build docker image + $(OCI_BUILD) -t $(BUILD_IMAGE) ./loki-build-image +build-image-push: build-image ifneq (,$(findstring WIP,$(IMAGE_TAG))) @echo "Cannot push a WIP image, commit changes first"; \ false; endif - echo ${DOCKER_PASSWORD} | docker login --username ${DOCKER_USERNAME} --password-stdin - $(OCI_BUILD_PUSH) -t $(IMAGE_PREFIX)/loki-build-image:$(BUILD_IMAGE_TAG) ./loki-build-image + $(OCI_PUSH) -t $(BUILD_IMAGE) -# loki-operator -loki-operator-image: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-operator:$(IMAGE_TAG) -f operator/Dockerfile operator/ +# Loki Operator +loki-operator-image: ## build the operator docker image + $(OCI_BUILD) -t $(OPERATOR_IMAGE) -f operator/Dockerfile operator/ loki-operator-image-cross: - $(OCI_BUILD) -t $(IMAGE_PREFIX)/loki-operator:$(IMAGE_TAG) -f operator/Dockerfile.cross operator/ + $(OCI_BUILD) -t $(OPERATOR_IMAGE) -f operator/Dockerfile.cross operator/ loki-operator-push: loki-operator-image-cross - $(OCI_PUSH) $(IMAGE_PREFIX)/loki-operator:$(IMAGE_TAG) + $(OCI_PUSH) $(OPERATOR_IMAGE) ################# # Documentation #