# Email Monitoring Service - Dockerfile (multi-stage)

FROM golang:1.23-alpine AS builder

RUN apk add --no-cache git ca-certificates tzdata

WORKDIR /build

COPY go.mod ./
RUN go mod download

COPY . .

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
    -ldflags="-w -s" \
    -o email-monitor \
    ./cmd/main.go

FROM alpine:latest

RUN apk add --no-cache ca-certificates tzdata

RUN addgroup -g 1000 emailmonitor && \
    adduser -D -u 1000 -G emailmonitor emailmonitor

WORKDIR /app

COPY --from=builder /build/email-monitor /app/email-monitor

RUN mkdir -p /app/data && chown -R emailmonitor:emailmonitor /app

USER emailmonitor

HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
    CMD pgrep -f email-monitor || exit 1

ENTRYPOINT ["/app/email-monitor"]
