Running Locust with Docker¶
The official Docker image is currently found at locustio/locust.
The docker image can be used like this (assuming that the
locustfile.py exists in the current working directory):
docker run -p 8089:8089 -v $PWD:/mnt/locust locustio/locust -f /mnt/locust/locustfile.py
Here’s an example Docker Compose file that could be used to start both a master node, and worker nodes:
version: '3' services: master: image: locustio/locust ports: - "8089:8089" volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --master -H http://master:8089 worker: image: locustio/locust volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --worker --master-host master
The above compose configuration could be used to start a master node and 4 workers using the following command:
docker-compose up --scale worker=4
Use docker image as a base image¶
It’s very common to have test scripts that rely on third party python packages. In those cases you can use the official Locust docker image as a base image:
FROM locustio/locust RUN pip3 install some-python-package
Running a distributed load test on Kubernetes¶
The easiest way to run Locust on Kubernetes is to use a Helm chart. A Helm chart will package all settings and kubernetes resources together into an easy to manage way.
Currently the most up to date Helm chart is here: github.com/deliveryhero/helm-charts
Note: this Helm chart is not maintained or supported directly by Locust maintainers.