FROM golang:1.25.0-alpine AS builder WORKDIR /app # Copy go mod files first for better caching COPY go.mod go.sum ./ RUN go mod download # Copy only what's needed for the build COPY cmd/hatchet-loadtest/ ./cmd/hatchet-loadtest/ COPY pkg/ ./pkg/ COPY internal/ ./internal/ COPY api/ ./api/ COPY api-contracts/ ./api-contracts/ # Build the loadtest binary RUN cd cmd/hatchet-loadtest && \ CGO_ENABLED=0 GOOS=linux go build -tags=load -o /app/hatchet-loadtest . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /app COPY --from=builder /app/hatchet-loadtest . # Default command runs the load test CMD ["./hatchet-loadtest", "loadtest", \ "--events", "10", \ "--duration", "60s", \ "--payloadSize", "100kb", \ "--dagSteps", "1", \ "--eventFanout", "1", \ "--slots", "100"]