You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Locust基础Docker镜像添加自定义Poetry环境?

在带Poetry额外依赖的Docker容器中运行Locust

方案一:构建包含Poetry依赖的稳定镜像(生产推荐)

这种方式将所有依赖打包进镜像,运行时无需重复安装,适合稳定的负载测试场景。

步骤1:准备项目文件

确保本地项目目录下有:

  • pyproject.toml(已声明所有额外依赖)
  • poetry.lock(可选,用于锁定依赖版本)
  • locustfile.py(Locust测试脚本)

步骤2:编写Dockerfile

创建名为Dockerfile的文件,内容如下:

# 基于官方Locust镜像
FROM locustio/locust

# 安装Poetry包管理工具
RUN pip install poetry

# 设置容器内工作目录
WORKDIR /mnt/locust

# 复制Poetry配置文件到容器
COPY pyproject.toml poetry.lock* ./

# 配置Poetry不创建虚拟环境,直接使用系统Python环境
RUN poetry config virtualenvs.create false \
    # 安装项目依赖(--no-root表示不安装项目本身,--only main仅安装生产依赖)
    && poetry install --no-root --only main

# 复制Locust测试脚本到容器
COPY locustfile.py ./

# 容器启动时执行的命令
CMD ["locust", "-f", "/mnt/locust/locustfile.py"]

步骤3:构建并运行容器

执行以下命令构建镜像并启动容器:

# 构建自定义镜像,命名为locust-poetry
docker build -t locust-poetry .

# 启动容器,映射8089端口(Locust默认端口)
docker run -p 8089:8089 locust-poetry

方案二:绑定挂载本地项目(开发调试用)

如果需要频繁修改本地代码或依赖,可直接挂载本地目录到容器内,实时生效。由于Poetry环境与工作目录关联,需在启动时处理依赖安装:

执行以下命令启动容器:

docker run -p 8089:8089 -v $PWD:/mnt/locust locustio/locust \
  sh -c "pip install poetry && poetry config virtualenvs.create false && poetry install --no-root && locust -f /mnt/locust/locustfile.py"

命令说明

  • -v $PWD:/mnt/locust:将当前本地目录挂载到容器内的/mnt/locust路径
  • 用sh -c串联命令:先安装Poetry,配置禁用虚拟环境,安装项目依赖,最后启动Locust

注意事项

  • 若需要安装开发依赖,可移除--only main参数,改为poetry install --no-root
  • 确保pyproject.toml中已正确添加所有负载测试所需的额外库(如requests、pandas等)
  • 生产环境优先使用方案一,避免每次启动容器重复安装依赖,保证运行稳定性

内容的提问来源于stack exchange,提问作者azizbro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:30:35