diff options
Diffstat (limited to 'seaweedfs-rdma-sidecar/Dockerfile.test-client')
| -rw-r--r-- | seaweedfs-rdma-sidecar/Dockerfile.test-client | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/seaweedfs-rdma-sidecar/Dockerfile.test-client b/seaweedfs-rdma-sidecar/Dockerfile.test-client new file mode 100644 index 000000000..879b8033a --- /dev/null +++ b/seaweedfs-rdma-sidecar/Dockerfile.test-client @@ -0,0 +1,59 @@ +# Multi-stage build for Test Client +FROM golang:1.23-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache git ca-certificates tzdata + +# Set work directory +WORKDIR /app + +# Copy go mod files +COPY go.mod go.sum ./ + +# Download dependencies +RUN go mod download + +# Copy source code +COPY cmd/ ./cmd/ +COPY pkg/ ./pkg/ + +# Build the test binaries +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o test-rdma ./cmd/test-rdma +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o demo-server ./cmd/demo-server + +# Runtime stage +FROM alpine:3.18 + +# Install runtime dependencies and testing tools +RUN apk --no-cache add \ + ca-certificates \ + curl \ + jq \ + bash \ + wget \ + netcat-openbsd \ + && rm -rf /var/cache/apk/* + +# Create app user +RUN addgroup -g 1001 appgroup && \ + adduser -D -s /bin/bash -u 1001 -G appgroup appuser + +# Set work directory +WORKDIR /app + +# Copy binaries from builder stage +COPY --from=builder /app/test-rdma . +COPY --from=builder /app/demo-server . + +# Copy test scripts +COPY tests/ ./tests/ +RUN chmod +x ./tests/*.sh + +# Change ownership +RUN chown -R appuser:appgroup /app + +# Switch to app user +USER appuser + +# Default command +CMD ["/bin/bash"] |
