From 7590049df34bd58de9cd51d300826fc5ecc8afe6 Mon Sep 17 00:00:00 2001 From: pschork <354473+pschork@users.noreply.github.com> Date: Sat, 14 Sep 2024 01:16:39 -0700 Subject: [PATCH] Fix docker-bake issues with devops builds (#761) --- Dockerfile | 13 ++++++++++- docker-bake.hcl | 44 +++++++++++++++++++++++++------------ trafficgenerator.Dockerfile | 4 ++-- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 011cf459b..d4a2f5b7a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,6 +43,13 @@ RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ go build -o ./bin/apiserver ./cmd/apiserver +# DataAPI build stage +FROM common-builder AS dataapi-builder +WORKDIR /app/disperser +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go build -o ./bin/dataapi ./cmd/dataapi + # Batcher build stage FROM common-builder AS batcher-builder WORKDIR /app/disperser @@ -92,6 +99,10 @@ FROM alpine:3.18 AS apiserver COPY --from=apiserver-builder /app/disperser/bin/apiserver /usr/local/bin ENTRYPOINT ["apiserver"] +FROM alpine:3.18 AS dataapi +COPY --from=dataapi-builder /app/disperser/bin/dataapi /usr/local/bin +ENTRYPOINT ["dataapi"] + FROM alpine:3.18 AS batcher COPY --from=batcher-builder /app/disperser/bin/batcher /usr/local/bin ENTRYPOINT ["batcher"] @@ -106,4 +117,4 @@ ENTRYPOINT ["node"] FROM alpine:3.18 AS nodeplugin COPY --from=node-plugin-builder /app/node/bin/nodeplugin /usr/local/bin -ENTRYPOINT ["nodeplugin"] \ No newline at end of file +ENTRYPOINT ["nodeplugin"] diff --git a/docker-bake.hcl b/docker-bake.hcl index eab56e965..92b604da1 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -1,10 +1,6 @@ # VARIABLES variable "REGISTRY" { - default = "ghcr.io" -} - -variable "REPOSITORY" { - default = "layr-labs/eigenda" + default = "ghcr.io/layr-labs/eigenda" } variable "BUILD_TAG" { @@ -45,50 +41,69 @@ group "node-group-release" { targets = ["node-release", "nodeplugin-release"] } +# DOCKER METADATA TARGET +# See https://github.com/docker/metadata-action?tab=readme-ov-file#bake-definition + +target "docker-metadata-action" {} + # DISPERSER TARGETS target "batcher" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "batcher" - tags = ["${REGISTRY}/${REPOSITORY}/batcher:${BUILD_TAG}"] } target "disperser" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "apiserver" - tags = ["${REGISTRY}/${REPOSITORY}/disperser:${BUILD_TAG}"] } target "encoder" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "encoder" - tags = ["${REGISTRY}/${REPOSITORY}/encoder:${BUILD_TAG}"] } target "retriever" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "retriever" - tags = ["${REGISTRY}/${REPOSITORY}/retriever:${BUILD_TAG}"] } target "churner" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "churner" - tags = ["${REGISTRY}/${REPOSITORY}/churner:${BUILD_TAG}"] +} + +target "traffic-generator" { + inherits = ["docker-metadata-action"] + context = "." + dockerfile = "./trafficgenerator.Dockerfile" + target = "generator" +} + +target "dataapi" { + inherits = ["docker-metadata-action"] + context = "." + dockerfile = "./Dockerfile" + target = "dataapi" } # NODE TARGETS target "node" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "node" - tags = ["${REGISTRY}/${REPOSITORY}/node:${BUILD_TAG}"] args = { SEMVER = "${SEMVER}" GITCOMMIT = "${GITCOMMIT}" @@ -97,10 +112,10 @@ target "node" { } target "nodeplugin" { + inherits = ["docker-metadata-action"] context = "." dockerfile = "./Dockerfile" target = "nodeplugin" - tags = ["${REGISTRY}/${REPOSITORY}/nodeplugin:${BUILD_TAG}"] } # RELEASE TARGETS @@ -111,10 +126,11 @@ target "_release" { target "node-release" { inherits = ["node", "_release"] - tags = ["${REGISTRY}/${REPOSITORY}/opr-node:${BUILD_TAG}"] + tags = ["${REGISTRY}/opr-node:${BUILD_TAG}"] } target "nodeplugin-release" { inherits = ["nodeplugin", "_release"] - tags = ["${REGISTRY}/${REPOSITORY}/opr-nodeplugin:${BUILD_TAG}"] + tags = ["${REGISTRY}/opr-nodeplugin:${BUILD_TAG}"] } + diff --git a/trafficgenerator.Dockerfile b/trafficgenerator.Dockerfile index 0041e47e7..8d39eaf33 100644 --- a/trafficgenerator.Dockerfile +++ b/trafficgenerator.Dockerfile @@ -13,8 +13,8 @@ RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ go build -o ./bin/generator ./cmd -FROM alpine:3.18 +FROM alpine:3.18 as generator COPY --from=builder /app/tools/traffic/bin/generator /usr/local/bin -ENTRYPOINT ["generator"] \ No newline at end of file +ENTRYPOINT ["generator"]