如何在docker-compose.yml中配置ClamAV最大文件大小解决管道破裂错误?
解决ClamAV Docker容器扫描大文件出现Broken Pipe Error的问题
你设置的CLAMD_CONF_MaxFileSize和CLAMD_CONF_MaxScanSize环境变量是正确的,但Broken Pipe Error通常还和流式传输限制、连接超时有关,需要补充以下关键配置:
- CLAMD_CONF_StreamMaxLength:控制clamd接收流式数据的最大长度,必须大于等于
MaxFileSize,否则大文件传输时会被截断导致连接中断。 - CLAMD_CONF_ReadTimeout:延长连接读取超时时间,避免大文件扫描耗时过长导致连接断开。
- CLAMD_CONF_MaxConnectionQueueLength:增加连接队列长度,防止并发扫描时队列溢出。
修改后的docker-compose.yml配置如下:
version: "3.3" services: clamav: image: clamav/clamav:latest environment: CLAMD_CONF_MaxFileSize: 250M CLAMD_CONF_MaxScanSize: 250M CLAMD_CONF_StreamMaxLength: 250M CLAMD_CONF_ReadTimeout: 300 CLAMD_CONF_MaxConnectionQueueLength: 10 restart: always ports: - "3310:3310"
配置生效后,你可以进入容器验证clamd配置是否正确应用:
docker exec -it <你的容器名称或ID> cat /etc/clamav/clamd.conf
检查输出中对应的MaxFileSize、StreamMaxLength等项是否和你设置的一致。另外,大文件扫描会消耗更多资源,确保容器分配了足够的内存和CPU。
内容的提问来源于stack exchange,提问作者Adrian Bielefeldt
相关产品推荐
相关产品推荐

