« Back to Index

Install more recent version of Siege (https://github.com/JoeDog/siege) inside of a Docker container

View original Gist on GitHub

1. Usage.sh

docker build -t integralist/siege .

# docker run -v "$HOME/Downloads/siege-urls.txt":/urls.txt integralist/siege -b -H "Host: foo.example.com" -v -c 150 -t 30s -f /urls.txt

docker run integralist/siege

New configuration template added to /root/.siege
Run siege -C to view the current settings in that file
Usage: siege [options]
       siege [options] URL
       siege -g URL
Options:
  -V, --version             VERSION, prints the version number.
  -h, --help                HELP, prints this section.
  -C, --config              CONFIGURATION, show the current config.
  -v, --verbose             VERBOSE, prints notification to screen.
  -q, --quiet               QUIET turns verbose off and suppresses output.
  -g, --get                 GET, pull down HTTP headers and display the
                            transaction. Great for application debugging.
  -c, --concurrent=NUM      CONCURRENT users, default is 10
  -r, --reps=NUM            REPS, number of times to run the test.
  -t, --time=NUMm           TIMED testing where "m" is modifier S, M, or H
                            ex: --time=1H, one hour test.
  -d, --delay=NUM           Time DELAY, random delay before each requst
  -b, --benchmark           BENCHMARK: no delays between requests.
  -i, --internet            INTERNET user simulation, hits URLs randomly.
  -f, --file=FILE           FILE, select a specific URLS FILE.
  -R, --rc=FILE             RC, specify an siegerc file
  -l, --log[=FILE]          LOG to FILE. If FILE is not specified, the
                            default is used: PREFIX/var/siege.log
  -m, --mark="text"         MARK, mark the log file with a string.
                            between .001 and NUM. (NOT COUNTED IN STATS)
  -H, --header="text"       Add a header to request (can be many)
  -A, --user-agent="text"   Sets User-Agent in request
  -T, --content-type="text" Sets Content-Type in request

Copyright (C) 2016 by Jeffrey Fulmer, et al.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.

[alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory
SIEGE 4.0.2

Dockerfile

FROM ubuntu:latest
MAINTAINER Integralist "mark.mcdx@gmail.com"

ENV VERSION=4.0.2
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update \
      && apt-get install -y curl g++ make libssl-dev \
      && curl http://download.joedog.org/siege/siege-$VERSION.tar.gz > siege-$VERSION.tar.gz \
      && tar -xf siege-${VERSION}.tar.gz \
      && cd siege-${VERSION} \
      && ./configure \
      && make install \
      && apt-get clean \
      && rm -rf /var/lib/apt/lists

# Raise the limits to successfully run benchmarks
RUN ulimit -c -m -s -t unlimited

ENTRYPOINT ["siege"]
CMD ["--help"]