FROM public.ecr.aws/docker/library/golang:1.23.4-bookworm AS build

# Set destination for COPY
WORKDIR /app

# Download Go modules
COPY go.mod go.sum ./
RUN --mount=type=cache,target="/go" go mod download -x

COPY . .

# Build
ENV GOCACHE=/root/.cache/go-build
RUN --mount=type=cache,target="/go" --mount=type=cache,target="/root/.cache/go-build" CGO_ENABLED=1 GOOS=linux go build -o /flink-kube-operator ./cmd/operator


FROM busybox:1.36.1 AS final


COPY --from=build /flink-kube-operator /flink-kube-operator

EXPOSE 8083

# Run
CMD ["/flink-kube-operator"]