diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..30513c1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# ---- Build stage ---- +FROM golang:1.22-alpine AS build +WORKDIR /src + +COPY go.mod go.sum* ./ +RUN go mod tidy && go mod download + +COPY . . +RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /app . + +# ---- Runtime stage (distroless) ---- +FROM gcr.io/distroless/static-debian12:nonroot +COPY --from=build /app /app + +EXPOSE 8080 + +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD ["/app", "-health-check"] + +ENTRYPOINT ["/app"]