From 6bafc18aa62b9444113e44fc441f08e4b45b5364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20B=C5=82aszczyk?= Date: Mon, 30 Oct 2023 10:16:26 +0100 Subject: [PATCH] fix: goreleaser use compiled binaries in release (#76) --- Dockerfile => .docker/Dockerfile-build | 0 .../Dockerfile-kubebuilder | 0 .docker/Dockerfile-release | 8 +++ .goreleaser.yml | 49 +++++++++++++++++-- Makefile | 2 +- 5 files changed, 55 insertions(+), 4 deletions(-) rename Dockerfile => .docker/Dockerfile-build (100%) rename Dockerfile-kubebuilder => .docker/Dockerfile-kubebuilder (100%) create mode 100644 .docker/Dockerfile-release diff --git a/Dockerfile b/.docker/Dockerfile-build similarity index 100% rename from Dockerfile rename to .docker/Dockerfile-build diff --git a/Dockerfile-kubebuilder b/.docker/Dockerfile-kubebuilder similarity index 100% rename from Dockerfile-kubebuilder rename to .docker/Dockerfile-kubebuilder diff --git a/.docker/Dockerfile-release b/.docker/Dockerfile-release new file mode 100644 index 0000000..9435b28 --- /dev/null +++ b/.docker/Dockerfile-release @@ -0,0 +1,8 @@ +# Use distroless as minimal base image to package the manager binary +# Refer to https://github.com/GoogleContainerTools/distroless for more details +FROM gcr.io/distroless/static:nonroot +WORKDIR / +COPY manager . +USER 65532:65532 + +ENTRYPOINT ["/manager"] diff --git a/.goreleaser.yml b/.goreleaser.yml index 99dbe22..61a8870 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -7,17 +7,55 @@ before: - "go mod download" builds: - - flags: + - id: linux-amd64 + flags: - -a binary: manager env: - CGO_ENABLED=0 goarch: - amd64 - - 386 + goos: + - linux + - id: linux-arm64 + flags: + - -a + binary: manager + env: + - CGO_ENABLED=0 + goarch: - arm64 goos: - linux + - id: linux-i386 + flags: + - -a + binary: manager + env: + - CGO_ENABLED=0 + goarch: + - 386 + goos: + - linux + - id: darwin-amd64 + flags: + - -a + binary: manager + env: + - CGO_ENABLED=0 + goarch: + - amd64 + goos: + - darwin + - id: darwin-arm64 + flags: + - -a + binary: manager + env: + - CGO_ENABLED=0 + goarch: + - arm64 + goos: - darwin snapshot: @@ -34,13 +72,18 @@ dockers: goarch: amd64 build_flag_templates: - "--platform=linux/amd64" + dockerfile: ".docker/Dockerfile-release" + ids: + - "linux-amd64" - image_templates: - "oryd/oathkeeper-maester:{{ .Tag }}-arm64" - "oryd/oathkeeper-maester:{{ .ShortCommit }}-arm64" - - "oryd/oathkeeper-maester:latest" goarch: arm64 build_flag_templates: - "--platform=linux/arm64" + dockerfile: ".docker/Dockerfile-release" + ids: + - "linux-arm64" release: prerelease: auto diff --git a/Makefile b/Makefile index 9a256a1..f4f5b20 100644 --- a/Makefile +++ b/Makefile @@ -171,7 +171,7 @@ generate: controller-gen # Build the docker image .PHONY: docker-build-notest docker-build-notest: - docker build . -t ${IMG} + docker build . -t ${IMG} -f .docker/Dockerfile-build @echo "updating kustomize image patch file for manager resource" sed -i'' -e 's@image: .*@image: '"${IMG}"'@' ./config/default/manager_image_patch.yaml