From c7b5409bea8852a214ccaeaef3d98e593c2caf65 Mon Sep 17 00:00:00 2001 From: harshsingh1002 Date: Thu, 21 Aug 2025 01:05:15 +0530 Subject: [PATCH 1/3] feat: modify docker builds --- Makefile | 3 ++- infrastructure/docker/docker-bake.hcl | 38 ++++++++++++++++++++------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 3988e40b0..fc0b6e496 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ TAG ?= $(shell git describe --tags || git rev-parse --short HEAD) +REGISTRY ?= ghcr.io/primev .PHONY: docker docker: - cd infrastructure/docker && TAG=$(TAG) docker buildx bake + cd infrastructure/docker && TAG=$(TAG) REGISTRY=$(REGISTRY) docker buildx bake diff --git a/infrastructure/docker/docker-bake.hcl b/infrastructure/docker/docker-bake.hcl index 80b06ec8d..a334cbe51 100644 --- a/infrastructure/docker/docker-bake.hcl +++ b/infrastructure/docker/docker-bake.hcl @@ -1,83 +1,103 @@ variable "TAG" { default = "dev" } +variable "PLATFORM" { default = ["linux/amd64"] } +variable "REGISTRY" { default = "ghcr.io/primev" } +variable "REPO_NAME" { default = "" } target "mev-commit-builder" { + inherits = ["_common"] context = "../../" dockerfile = "infrastructure/docker/Dockerfile.builder" } target "mev-commit-oracle" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.oracle" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/mev-commit-oracle:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit-oracle" : "${REGISTRY}/mev-commit-oracle:${TAG}"] } target "mev-commit" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.p2p" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/mev-commit:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit" : "${REGISTRY}/mev-commit:${TAG}"] } target "mev-commit-bridge" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.bridge" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/mev-commit-bridge:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit-bridge" : "${REGISTRY}/mev-commit-bridge:${TAG}"] } target "mev-commit-dashboard" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.dashboard" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/mev-commit-dashboard:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit-dashboard" : "${REGISTRY}/mev-commit-dashboard:${TAG}"] } target "preconf-rpc" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.rpc" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/preconf-rpc:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-preconf-rpc" : "${REGISTRY}/preconf-rpc:${TAG}"] } target "bidder-emulator" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.bidderemulator" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/bidder-emulator:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-bidder-emulator" : "${REGISTRY}/bidder-emulator:${TAG}"] } target "provider-emulator" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.provideremulator" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/provider-emulator:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-provider-emulator" : "${REGISTRY}/provider-emulator:${TAG}"] } target "relay-emulator" { + inherits = ["_common"] context = "./" dockerfile = "Dockerfile.relayemulator" contexts = { builder_ctx = "target:mev-commit-builder" } - tags = ["ghcr.io/primev/relay-emulator:${TAG}"] + tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-relay-emulator" : "${REGISTRY}/relay-emulator:${TAG}"] } -group "default" { +group "all" { targets = ["mev-commit-builder", "mev-commit-oracle", "mev-commit", "mev-commit-bridge", "mev-commit-dashboard", "preconf-rpc", "bidder-emulator", "provider-emulator", "relay-emulator"] } +group "default" { + targets = ["all"] +} + +target "_common" { + platforms = PLATFORM + output = ["type=docker"] +} From ccbf661226d28ecd5466f01f3acb4f3703318d3d Mon Sep 17 00:00:00 2001 From: Harsh pratap Singh Date: Wed, 27 Aug 2025 17:49:00 +0530 Subject: [PATCH 2/3] feat: add labels to docker images --- Makefile | 11 ++++++++-- infrastructure/docker/docker-bake.hcl | 29 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index fc0b6e496..a8d17492a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,13 @@ -TAG ?= $(shell git describe --tags || git rev-parse --short HEAD) +BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD | sed 's/[^a-zA-Z0-9._-]/-/g') +COMMIT ?= $(shell git rev-parse --short HEAD) +TAG ?= $(BRANCH)-$(COMMIT) REGISTRY ?= ghcr.io/primev .PHONY: docker docker: - cd infrastructure/docker && TAG=$(TAG) REGISTRY=$(REGISTRY) docker buildx bake + cd infrastructure/docker && \ + TAG=$(TAG) \ + REGISTRY=$(REGISTRY) \ + GIT_BRANCH=$(BRANCH) \ + GIT_COMMIT=$(COMMIT) \ + docker buildx bake diff --git a/infrastructure/docker/docker-bake.hcl b/infrastructure/docker/docker-bake.hcl index a334cbe51..7c11b322a 100644 --- a/infrastructure/docker/docker-bake.hcl +++ b/infrastructure/docker/docker-bake.hcl @@ -3,10 +3,31 @@ variable "PLATFORM" { default = ["linux/amd64"] } variable "REGISTRY" { default = "ghcr.io/primev" } variable "REPO_NAME" { default = "" } +# Git variables - these will be passed from Makefile +variable "GIT_BRANCH" { + default = null +} + +variable "GIT_COMMIT" { + default = null +} + +function "get_labels" { + params = [component] + result = { + "branch" = GIT_BRANCH != null ? GIT_BRANCH : "unknown" + "commit" = GIT_COMMIT != null ? GIT_COMMIT : "unknown" + "component" = component + "build.timestamp" = timestamp() + "build.tag" = TAG + } +} + target "mev-commit-builder" { inherits = ["_common"] context = "../../" dockerfile = "infrastructure/docker/Dockerfile.builder" + labels = get_labels("builder") } target "mev-commit-oracle" { @@ -17,6 +38,7 @@ target "mev-commit-oracle" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit-oracle" : "${REGISTRY}/mev-commit-oracle:${TAG}"] + labels = get_labels("oracle") } target "mev-commit" { @@ -27,6 +49,7 @@ target "mev-commit" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit" : "${REGISTRY}/mev-commit:${TAG}"] + labels = get_labels("p2p") } target "mev-commit-bridge" { @@ -37,6 +60,7 @@ target "mev-commit-bridge" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit-bridge" : "${REGISTRY}/mev-commit-bridge:${TAG}"] + labels = get_labels("bridge") } target "mev-commit-dashboard" { @@ -47,6 +71,7 @@ target "mev-commit-dashboard" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-mev-commit-dashboard" : "${REGISTRY}/mev-commit-dashboard:${TAG}"] + labels = get_labels("dashboard") } target "preconf-rpc" { @@ -57,6 +82,7 @@ target "preconf-rpc" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-preconf-rpc" : "${REGISTRY}/preconf-rpc:${TAG}"] + labels = get_labels("preconf-rpc") } target "bidder-emulator" { @@ -67,6 +93,7 @@ target "bidder-emulator" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-bidder-emulator" : "${REGISTRY}/bidder-emulator:${TAG}"] + labels = get_labels("bidder-emulator") } target "provider-emulator" { @@ -77,6 +104,7 @@ target "provider-emulator" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-provider-emulator" : "${REGISTRY}/provider-emulator:${TAG}"] + labels = get_labels("provider-emulator") } target "relay-emulator" { @@ -87,6 +115,7 @@ target "relay-emulator" { builder_ctx = "target:mev-commit-builder" } tags = [REPO_NAME != "" ? "${REGISTRY}/${REPO_NAME}:${TAG}-relay-emulator" : "${REGISTRY}/relay-emulator:${TAG}"] + labels = get_labels("relay-emulator") } group "all" { From 7a6525566be1a1f76d6c0f1c158e33ed1757e1cc Mon Sep 17 00:00:00 2001 From: Harsh pratap Singh Date: Wed, 27 Aug 2025 19:58:50 +0530 Subject: [PATCH 3/3] fix: remove platform from builder image --- infrastructure/docker/Dockerfile.builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/docker/Dockerfile.builder b/infrastructure/docker/Dockerfile.builder index 59506dd04..d6bcf61c7 100644 --- a/infrastructure/docker/Dockerfile.builder +++ b/infrastructure/docker/Dockerfile.builder @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS build +FROM golang:1.24-alpine AS build WORKDIR /ws