项目目录如下:
- coll- test_op.py # 压测脚本- socket_client.py # 自定义socket客户端- work_id.txt # 测试数据- compose- Dockerfile- pip.conf- requirements.txt- docker-compose.yml
#pip.conf 文件[global]timeout = 3600index-url = http://mirrors.aliyun.com/pypi/simple/trusted-host = mirrors.aliyun.comdisable-pip-version-check = true
# DockerfileFROM python:3.7# 设置 python 环境变量ENV PYTHONUNBUFFERED 1ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarnCOPY pip.conf /root/.pip/pip.conf# 创建 locust 文件夹RUN mkdir -p /mnt/locust# 将 locust 文件夹为工作目录WORKDIR /mnt/locust# 将当前目录加入到工作目录中(. 表示当前目录)ADD . /mnt/locust# 更新pip版本RUN /usr/local/bin/python3 -m pip install --upgrade pip# 利用 pip 安装依赖(websocket库放在requirements文件安装无效,不知道为啥...)RUN pip3 install -r requirements.txtRUN pip3 install websocketRUN pip3 install websocket-client
# docker-compose.ymlversion: '3'networks: # 自定义网络(默认桥接), 不使用links通信coll_network:driver: bridgeservices:master:build: ./composenetworks:- coll_networkports:- "8089:8089"volumes:- ./coll:/mnt/locustcommand: locust -f test_op.py --master --web-host=0.0.0.0worker:build: ./composenetworks:- coll_networkvolumes:- ./coll:/mnt/locustcommand: locust -f test_op.py --worker --master-host masterdepends_on:- master
docker compose build构建项目
docker compose up —scale worker=4启动一个主节点和四个工作节点
