# Middleware Service Dockerfile FROM golang:1.21-alpine AS builder WORKDIR /build # Copy go workspace COPY go.work* ./ COPY go.mod* ./services/middleware/ COPY go.sum* ./services/middleware/ 2>/dev/null || true # Copy shared packages COPY pkg/ ./pkg/ # Copy service COPY services/middleware/ ./services/middleware/ # Build WORKDIR /build/services/middleware RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /app/middleware . # Final image FROM alpine:3.18 RUN apk --no-cache add ca-certificates curl WORKDIR /app COPY --from=builder /app/middleware . # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8082/health || exit 1 EXPOSE 8082 CMD ["/app/middleware"]