From fe90821fcfe1dabe7211dc90b38f5f1a5c6d5c40 Mon Sep 17 00:00:00 2001
From: Cyril Levis <git@levis.name>
Date: Sat, 14 Sep 2024 16:47:34 +0200
Subject: [PATCH] fix: static build

---
 Dockerfile | 31 +++++++++++++++++++++++++++----
 Makefile   |  2 +-
 2 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index b1d67c477..31eb3d436 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,32 @@
-FROM golang:1.22
+FROM golang:1.22 as builder
+ARG VERSION="dev"
 WORKDIR /usr/src/app
+ENV CGO_ENABLED=0
+ENV GO111MODULE=on
 COPY go.mod go.sum ./
 RUN go mod download && go mod verify
 COPY . .
 RUN make build \
- && mv bin/manager /manager_amd64 \
- && ln -s /manager_amd64 /manager
-ENTRYPOINT ["/manager"]
+ && mv bin/manager /manager_amd64
+
+FROM alpine:latest
+ARG VERSION="dev"
+ENV SUMMARY="CloudNativePG Operator Container Image." \
+    DESCRIPTION="This Docker image contains CloudNativePG Operator."
+LABEL summary="$SUMMARY" \
+      description="$DESCRIPTION" \
+      io.k8s.display-name="$SUMMARY" \
+      io.k8s.description="$DESCRIPTION" \
+      name="CloudNativePG Operator" \
+      vendor="CloudNativePG Contributors" \
+      url="https://cloudnative-pg.io/" \
+      version="$VERSION" \
+      release="1"
+WORKDIR /
+RUN apk --no-cache add ca-certificates tzdata
+COPY licenses /licenses
+COPY LICENSE /licenses
+COPY --from=builder /manager_amd64 /bin/
+RUN ln -sf /bin/manager_amd64 manager
+USER 65532:65532
+ENTRYPOINT [ "/manager" ]
diff --git a/Makefile b/Makefile
index 05c8ba986..1a5fab8c6 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@ COMMIT := $(shell git rev-parse --short HEAD || echo unknown)
 DATE := $(shell git log -1 --pretty=format:'%ad' --date short)
 VERSION := $(shell git describe --tags --match 'v*' | sed -e 's/^v//; s/-g[0-9a-f]\+$$//; s/-\([0-9]\+\)$$/-dev\1/')
 REPLACE_VERSION := $(shell git describe --tags --abbrev=0 $(shell git describe --tags --match 'v*' --abbrev=0)^)
-LDFLAGS= "-X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildVersion=${VERSION} $\
+LDFLAGS= "-s -w -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildVersion=${VERSION} $\
 -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildCommit=${COMMIT} $\
 -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildDate=${DATE}"
 DIST_PATH := $(shell pwd)/dist
-- 
GitLab