services: rabbitmq: image: registry.cn-chengdu.aliyuncs.com/reghao/rabbitmq:3.13.7-management-alpine container_name: rabbitmq restart: always volumes: - /etc/localtime:/etc/localtime:ro # 将当前目录下的 data 文件夹映射到容器 - /opt/docker/rabbitmq/data:/var/lib/rabbitmq - /opt/docker/rabbitmq/log:/var/log/rabbitmq environment: # 指定账号密码 - RABBITMQ_DEFAULT_USER=test - RABBITMQ_DEFAULT_PASS=Test_123456 # 重点:设置内存高水位线。 # 0.4 表示当 RabbitMQ 使用超过总内存(1GB)的 40% 时,将触发流动控制。 # 在 1G 环境下,建议设为 0.4 (400MB),留出空间给 Erlang VM 和 OS 缓存。 - RABBITMQ_VM_MEMORY_HIGH_WATERMARK_RELATIVE=0.4 # 磁盘报警:剩余空间小于 2GB 时阻塞 - RABBITMQ_DISK_FREE_ABSOLUTE_LIMIT=2GB ports: - "5672:5672" - "15672:15672" deploy: resources: limits: cpus: '1.0' memory: 1024M reservations: cpus: '0.1' memory: 512M logging: driver: "json-file" options: max-size: "100m" # 单个日志文件最大 100MB max-file: "3" # 最多保留 3 个归档文件(总共约 300MB)