FROM golang:1.23-alpine AS builder

RUN apk add --no-cache git ca-certificates
WORKDIR /build

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /app/server ./cmd/server

FROM alpine:3.20 AS runner

RUN addgroup -S app && adduser -S -G app app
RUN apk add --no-cache ca-certificates tzdata

COPY --from=builder /app/server /app/server

USER app
WORKDIR /app

EXPOSE 8080
CMD ["/app/server"]
