From 466cd65931b0ae8ea0a23721f3c3ec9d8010d082 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Wed, 20 May 2026 12:27:19 +0300 Subject: [PATCH] Unify docker build Signed-off-by: Stefan Prodan --- .github/workflows/release.yml | 17 +++-------- Dockerfile.base | 10 ------- Dockerfile.xx | 53 ----------------------------------- Makefile | 22 --------------- 4 files changed, 4 insertions(+), 98 deletions(-) delete mode 100644 Dockerfile.base delete mode 100644 Dockerfile.xx diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 654db91..7346a5f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,7 +41,7 @@ jobs: - name: Setup Helm uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0 with: - version: v4.1.1 + version: v4.2.0 - name: Setup QEMU uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 with: @@ -88,7 +88,7 @@ jobs: push: true builder: ${{ steps.buildx.outputs.name }} context: . - file: ./Dockerfile.xx + file: ./Dockerfile build-args: | REVISION=${{ steps.prep.outputs.REVISION }} platforms: linux/amd64,linux/arm64 @@ -113,7 +113,7 @@ jobs: flux push artifact oci://ghcr.io/stefanprodan/manifests/podinfo:${{ steps.prep.outputs.VERSION }} \ --path="./kustomize" \ --source="${{ github.event.repository.html_url }}" \ - --revision="${GITHUB_REF_NAME}/${GITHUB_SHA}" + --revision="${GITHUB_REF_NAME}@sha1:${GITHUB_SHA}" flux tag artifact oci://ghcr.io/stefanprodan/manifests/podinfo:${{ steps.prep.outputs.VERSION }} --tag latest - name: Sign artifacts with Cosign env: @@ -123,15 +123,6 @@ jobs: cosign sign ghcr.io/stefanprodan/podinfo:${{ steps.prep.outputs.VERSION }} --yes cosign sign ghcr.io/stefanprodan/charts/podinfo:${{ steps.prep.outputs.VERSION }} --yes cosign sign ghcr.io/stefanprodan/manifests/podinfo:${{ steps.prep.outputs.VERSION }} --yes - - name: Publish base image - uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 - with: - push: true - builder: ${{ steps.buildx.outputs.name }} - context: . - platforms: linux/amd64 - file: ./Dockerfile.base - tags: docker.io/stefanprodan/podinfo-base:latest - name: Publish helm chart uses: stefanprodan/helm-gh-pages@0ad2bb377311d61ac04ad9eb6f252fb68e207260 # v1.7.0 with: @@ -141,7 +132,7 @@ jobs: flux push artifact oci://ghcr.io/stefanprodan/podinfo-deploy:${{ steps.prep.outputs.VERSION }} \ --path="./kustomize" \ --source="${{ github.event.repository.html_url }}" \ - --revision="${GITHUB_REF_NAME}/${GITHUB_SHA}" + --revision="${GITHUB_REF_NAME}@sha1:${GITHUB_SHA}" flux tag artifact oci://ghcr.io/stefanprodan/podinfo-deploy:${{ steps.prep.outputs.VERSION }} --tag latest - name: Sign config artifact with cso run: | diff --git a/Dockerfile.base b/Dockerfile.base deleted file mode 100644 index d7133ea..0000000 --- a/Dockerfile.base +++ /dev/null @@ -1,10 +0,0 @@ -FROM golang:1.26 - -WORKDIR /workspace - -# copy modules manifests -COPY go.mod go.mod -COPY go.sum go.sum - -# cache modules -RUN go mod download diff --git a/Dockerfile.xx b/Dockerfile.xx deleted file mode 100644 index 7e19967..0000000 --- a/Dockerfile.xx +++ /dev/null @@ -1,53 +0,0 @@ -ARG GO_VERSION=1.26 -ARG XX_VERSION=1.9.0 - -FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx - -FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine as builder - -# Copy the build utilities. -COPY --from=xx / / - -ARG TARGETPLATFORM -ARG REVISION - -RUN mkdir -p /podinfo/ - -WORKDIR /podinfo - -COPY . . - -RUN go mod download - -ENV CGO_ENABLED=0 -RUN xx-go build -ldflags "-s -w \ - -X github.com/stefanprodan/podinfo/pkg/version.REVISION=${REVISION}" \ - -a -o bin/podinfo cmd/podinfo/* - -RUN xx-go build -ldflags "-s -w \ - -X github.com/stefanprodan/podinfo/pkg/version.REVISION=${REVISION}" \ - -a -o bin/podcli cmd/podcli/* - -FROM alpine:3.23 - -ARG BUILD_DATE -ARG VERSION -ARG REVISION - -LABEL maintainer="stefanprodan" - -RUN addgroup -S app \ - && adduser -S -G app app \ - && apk --no-cache add \ - ca-certificates curl netcat-openbsd - -WORKDIR /home/app - -COPY --from=builder /podinfo/bin/podinfo . -COPY --from=builder /podinfo/bin/podcli /usr/local/bin/podcli -COPY ./ui ./ui -RUN chown -R app:app ./ - -USER app - -CMD ["./podinfo"] diff --git a/Makefile b/Makefile index af3c41d..5e1cb1b 100644 --- a/Makefile +++ b/Makefile @@ -39,19 +39,6 @@ build-charts: build-container: docker build -t $(DOCKER_IMAGE_NAME):$(VERSION) . -build-xx: - docker buildx build \ - --platform=linux/amd64 \ - -t $(DOCKER_IMAGE_NAME):$(VERSION) \ - --load \ - -f Dockerfile.xx . - -build-base: - docker build -f Dockerfile.base -t $(DOCKER_REPOSITORY)/podinfo-base:latest . - -push-base: build-base - docker push $(DOCKER_REPOSITORY)/podinfo-base:latest - test-container: @docker rm -f podinfo || true @docker run -dp 9898:9898 --name=podinfo $(DOCKER_IMAGE_NAME):$(VERSION) @@ -59,15 +46,6 @@ test-container: @TOKEN=$$(curl -sd 'test' localhost:9898/token | jq -r .token) && \ curl -sH "Authorization: Bearer $${TOKEN}" localhost:9898/token/validate | grep test -push-container: - docker tag $(DOCKER_IMAGE_NAME):$(VERSION) $(DOCKER_IMAGE_NAME):latest - docker push $(DOCKER_IMAGE_NAME):$(VERSION) - docker push $(DOCKER_IMAGE_NAME):latest - docker tag $(DOCKER_IMAGE_NAME):$(VERSION) quay.io/$(DOCKER_IMAGE_NAME):$(VERSION) - docker tag $(DOCKER_IMAGE_NAME):$(VERSION) quay.io/$(DOCKER_IMAGE_NAME):latest - docker push quay.io/$(DOCKER_IMAGE_NAME):$(VERSION) - docker push quay.io/$(DOCKER_IMAGE_NAME):latest - version-set: @next="$(TAG)" && \ current="$(VERSION)" && \