Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'
This commit is contained in:
63
vendor/ruvector/benchmarks/Dockerfile
vendored
Normal file
63
vendor/ruvector/benchmarks/Dockerfile
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
# RuVector Benchmark Container
|
||||
# Containerized benchmarking environment with k6 and all dependencies
|
||||
|
||||
FROM loadimpact/k6:0.48.0 as k6
|
||||
|
||||
FROM node:20-alpine
|
||||
|
||||
# Install dependencies
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
curl \
|
||||
git \
|
||||
python3 \
|
||||
py3-pip
|
||||
|
||||
# Copy k6 binary from k6 image
|
||||
COPY --from=k6 /usr/bin/k6 /usr/bin/k6
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /benchmarks
|
||||
|
||||
# Copy package files
|
||||
COPY package*.json ./
|
||||
|
||||
# Install Node.js dependencies
|
||||
RUN npm install -g typescript ts-node && \
|
||||
npm install --production
|
||||
|
||||
# Copy benchmark files
|
||||
COPY *.ts ./
|
||||
COPY *.html ./
|
||||
COPY *.md ./
|
||||
COPY setup.sh ./
|
||||
|
||||
# Make scripts executable
|
||||
RUN chmod +x setup.sh
|
||||
|
||||
# Create results directory
|
||||
RUN mkdir -p results
|
||||
|
||||
# Set environment variables
|
||||
ENV BASE_URL=http://localhost:8080
|
||||
ENV PARALLEL=1
|
||||
ENV ENABLE_HOOKS=false
|
||||
ENV LOG_LEVEL=info
|
||||
ENV NODE_OPTIONS=--max-old-space-size=4096
|
||||
|
||||
# Volume for results
|
||||
VOLUME ["/benchmarks/results"]
|
||||
|
||||
# Default command
|
||||
CMD ["ts-node", "benchmark-runner.ts", "list"]
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
||||
CMD k6 version || exit 1
|
||||
|
||||
# Labels
|
||||
LABEL org.opencontainers.image.title="RuVector Benchmarks"
|
||||
LABEL org.opencontainers.image.description="Enterprise-grade benchmarking suite for RuVector"
|
||||
LABEL org.opencontainers.image.version="1.0.0"
|
||||
LABEL org.opencontainers.image.vendor="RuVector Team"
|
||||
LABEL org.opencontainers.image.source="https://github.com/ruvnet/ruvector"
|
||||
Reference in New Issue
Block a user