Macbook M1上Docker-Compose启动Locust无Worker问题求助
Locust Worker节点在Docker Compose启动后不显示(Macbook M1环境)
问题描述
在Macbook M1设备上通过Docker Compose启动Locust集群,服务启动后控制台始终看不到Worker节点(预期至少1个),且所有服务日志无任何报错信息。
复现信息
Docker Compose配置
version: '3.3' services: master_locust: image: locustio/locust:master ports: - "8089:8089" volumes: - ./backend:/mnt/locust command: -f /mnt/locust/locustfile.py --master depends_on: - worker_locust worker_locust: image: locustio/locust:master volumes: - ./backend:/mnt/locust command: -f /mnt/locust/locustfile.py --worker --master-host=master_locust
执行命令
docker-compose up master_locustdocker-compose up --scale worker_locust=4 master_locust
问题截图

解决方案
1. 解决架构兼容性问题(M1专属)
locustio/locust:master镜像默认可能只提供amd64版本,在M1的arm64环境下运行时,Rosetta转译可能导致Worker与Master的网络通信异常。两种解决方式:
- 改用多架构镜像:使用官方支持arm64的指定版本镜像,比如
locustio/locust:2.24.0(可在Docker Hub确认版本支持情况) - 强制指定架构:在docker-compose配置中为两个服务添加
platform: linux/amd64,强制使用amd64架构运行:
services: master_locust: image: locustio/locust:master platform: linux/amd64 ports: - "8089:8089" volumes: - ./backend:/mnt/locust command: -f /mnt/locust/locustfile.py --master depends_on: - worker_locust worker_locust: image: locustio/locust:master platform: linux/amd64 volumes: - ./backend:/mnt/locust command: -f /mnt/locust/locustfile.py --worker --master-host=master_locust
2. 调整集群启动命令
当前分两次启动的方式可能导致依赖逻辑异常,直接用单条命令启动整个集群,让Docker Compose自动处理服务启动顺序:
docker-compose up --scale worker_locust=4
3. 排查网络连通性
进入Worker容器,测试与Master的网络连通性:
# 获取Worker容器ID docker ps | grep worker_locust # 进入容器 docker exec -it <worker_container_id> bash # ping Master服务名 ping master_locust
如果ping不通,删除现有网络后重新启动:
docker-compose down -v docker-compose up --scale worker_locust=4
4. 查看Worker详细日志
即使全局日志无报错,单独查看Worker日志可能发现隐性连接问题:
docker-compose logs worker_locust
若出现Connection refused类信息,再针对性排查网络或镜像配置。
内容的提问来源于stack exchange,提问作者Ebrahim Ze
相关产品推荐
相关产品推荐

