Skip to content

Instantly share code, notes, and snippets.

@bneutra
Created September 13, 2019 16:31
Show Gist options
  • Save bneutra/43284959b885c0b6ad6ddaeeffffb893 to your computer and use it in GitHub Desktop.
Save bneutra/43284959b885c0b6ad6ddaeeffffb893 to your computer and use it in GitHub Desktop.
# ruby-jmeter image to run
FROM alpine:3.9
ARG JMETER_VERSION="5.1"
ENV JMETER_HOME /opt/apache-jmeter-${JMETER_VERSION}
ENV JMETER_BIN ${JMETER_HOME}/bin
ENV JMETER_DOWNLOAD_URL https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz
# Install extra packages
# See https://github.com/gliderlabs/docker-alpine/issues/136#issuecomment-272703023
# Change TimeZone TODO: TZ still is not set!
ARG TZ="America/New_York"
RUN apk update
RUN apk upgrade
RUN apk add ca-certificates
RUN update-ca-certificates
RUN apk add --update openjdk8-jre nss tzdata curl unzip bash \
&& mkdir -p /tmp/dependencies \
&& curl -L --silent ${JMETER_DOWNLOAD_URL} > /tmp/dependencies/apache-jmeter-${JMETER_VERSION}.tgz \
&& mkdir -p /opt \
&& tar -xzf /tmp/dependencies/apache-jmeter-${JMETER_VERSION}.tgz -C /opt \
&& rm -rf /tmp/dependencies
RUN apk add build-base ruby-dev ruby ruby-bundler ruby-io-console libffi-dev zlib-dev ruby-json
RUN rm -rf /var/cache/apk/*
RUN gem install rdoc --no-document && gem install ruby-jmeter && gem install json
RUN ln -s $JMETER_HOME /opt/jmeter
RUN mkdir /app
COPY irfload.rb /app/ # ruby-jmeter script
COPY claim.json /app/ # sample post request
COPY entrypoint.sh /app/ # wrapper script
WORKDIR /mnt
# e.g. args: endpoint_url, rpm, duration_secs, rampup_secs
# docker run -v `pwd`:/mnt [IMAGE] https://your/api 300 120 20
ENTRYPOINT ["/app/entrypoint.sh"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment