You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
# Kafka Client Load Test Runner Dockerfile
|
|
# Multi-stage build for cross-platform support
|
|
|
|
# Stage 1: Builder
|
|
FROM golang:1.24-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy go module files
|
|
COPY test/kafka/kafka-client-loadtest/go.mod test/kafka/kafka-client-loadtest/go.sum ./
|
|
RUN go mod download
|
|
|
|
# Copy source code
|
|
COPY test/kafka/kafka-client-loadtest/ ./
|
|
|
|
# Build the loadtest binary
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /kafka-loadtest ./cmd/loadtest
|
|
|
|
# Stage 2: Runtime
|
|
FROM ubuntu:22.04
|
|
|
|
# Install runtime dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
ca-certificates \
|
|
curl \
|
|
jq \
|
|
bash \
|
|
netcat \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy built binary from builder stage
|
|
COPY --from=builder /kafka-loadtest /usr/local/bin/kafka-loadtest
|
|
RUN chmod +x /usr/local/bin/kafka-loadtest
|
|
|
|
# Copy scripts and configuration
|
|
COPY test/kafka/kafka-client-loadtest/scripts/ /scripts/
|
|
COPY test/kafka/kafka-client-loadtest/config/ /config/
|
|
|
|
# Create results directory
|
|
RUN mkdir -p /test-results
|
|
|
|
# Make scripts executable
|
|
RUN chmod +x /scripts/*.sh
|
|
|
|
WORKDIR /app
|
|
|
|
# Default command runs the comprehensive load test
|
|
CMD ["/usr/local/bin/kafka-loadtest", "-config", "/config/loadtest.yaml"]
|
|
|