FROM golang:1.22-alpine AS builder # Install build dependencies RUN apk add --no-cache git ca-certificates WORKDIR /app # Copy go mod files COPY go.mod go.sum* ./ # Download dependencies RUN go mod download || true # Copy source code COPY main.go ./ # Build the binary RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o hmmm-monitor main.go # Final stage - minimal image FROM alpine:latest RUN apk --no-cache add ca-certificates tzdata WORKDIR /app # Copy binary from builder COPY --from=builder /app/hmmm-monitor . # Run as non-root user RUN addgroup -g 1000 monitor && \ adduser -D -u 1000 -G monitor monitor && \ chown -R monitor:monitor /app USER monitor # Set metadata LABEL maintainer="CHORUS Ecosystem" \ description="HMMM Traffic Monitor - Real-time libp2p message monitoring for CHORUS" ENTRYPOINT ["./hmmm-monitor"]