
naorlivne/alert_on_bad_air_quality空气质量警报Docker镜像是一个轻量级应用,旨在实时监测空气质量数据,当关键指标(如AQI、PM2.5、PM10等)超过预设阈值时,自动触发警报通知。该镜像适用于需要实时关注空气质量的场景,帮助用户及时了解环境质量变化并采取应对措施。
bashdocker run -d \ --name air-quality-alert \ --restart unless-stopped \ -e MONITOR_INTERVAL=300 \ # 监测间隔(秒),默认300秒(5分钟) -e AQI_THRESHOLD=100 \ # AQI警报阈值,默认100(轻度污染) -e PM25_THRESHOLD=75 \ # PM2.5警报阈值(μg/m³),默认75 -e PM10_THRESHOLD=150 \ # PM10警报阈值(μg/m³),默认150 -e AIR_QUALITY_API_PROVIDER=aqicn \ # 空气质量API提供商,支持aqicn/openweathermap/custom -e API_KEY=your_api_key \ # 第三方API密钥(若使用需提供) -e CITY_ID=*** \ # 监测城市ID(根据API提供商要求配置) -e NOTIFICATION_METHOD=email \ # 通知方式,支持email/slack/***/sms,多方式用逗号分隔 -e EMAIL_SMTP_SERVER=smtp.example.com \ # SMTP服务器地址(邮件通知时必填) -e EMAIL_SMTP_PORT=587 \ # SMTP端口(默认587) -e EMAIL_SMTP_USER=*** \ # SMTP用户名 -e EMAIL_SMTP_PASSWORD=your_email_password \ # SMTP密码/授权码 -e EMAIL_RECIPIENTS=***,*** \ # 收件人***(逗号分隔) air-quality-alert:latest
| 环境变量 | 描述 | 默认值 | 可选值/示例 |
|---|---|---|---|
MONITOR_INTERVAL | 监测间隔(秒) | 300 | 60-3600(建议5-60分钟) |
AQI_THRESHOLD | AQI综合指数警报阈值 | 100 | 0-500(参考国家标准:0-50优,51-100良,101-150轻度污染等) |
PM25_THRESHOLD | PM2.5浓度警报阈值(μg/m³) | 75 | 0-500 |
PM10_THRESHOLD | PM10浓度警报阈值(μg/m³) | 150 | 0-500 |
AIR_QUALITY_API_PROVIDER | 空气质量数据API提供商 | aqicn | aqicn, openweathermap, custom |
API_KEY | 第三方API密钥(若提供商要求) | - | 如AQICN的API密钥 |
CITY_ID | 监测城市ID(根据API提供商格式填写) | - | 如AQICN的城市ID(可通过官网查询) |
NOTIFICATION_METHOD | 警报通知方式(多方式用逗号分隔) | email, slack, ***, sms | |
EMAIL_SMTP_SERVER | 邮件SMTP服务器地址(通知方式为email时必填) | - | smtp.gmail.com, smtp.qq.com |
EMAIL_SMTP_PORT | 邮件SMTP端口 | 587 | 25, 465, 587 |
EMAIL_SMTP_USER | 邮件SMTP用户名 | - | *** |
EMAIL_SMTP_PASSWORD | 邮件SMTP密码/授权码 | - | ***密码或应用专用授权码 |
EMAIL_RECIPIENTS | 邮件收件人(逗号分隔) | - | , |
yamlversion: '3.8' services: air-quality-alert: image: air-quality-alert:latest container_name: air-quality-alert restart: unless-stopped environment: - MONITOR_INTERVAL=300 - AQI_THRESHOLD=100 - PM25_THRESHOLD=75 - AIR_QUALITY_API_PROVIDER=aqicn - API_KEY=your_aqicn_api_key - CITY_ID=*** # 替换为目标城市ID - NOTIFICATION_METHOD=email,*** - EMAIL_SMTP_SERVER=smtp.qq.com - EMAIL_SMTP_PORT=587 - EMAIL_SMTP_USER=*** - EMAIL_SMTP_PASSWORD=your_smtp_auth_code - EMAIL_RECIPIENTS=*** - ***_BOT_TOKEN=your_***_bot_token # ***通知必填 - ***_CHAT_ID=your_chat_id # ***通知必填 logging: driver: "json-file" options: max-size: "10m" max-file: "3"
容器日志可通过docker logs air-quality-alert查看,主要记录:
[INFO] Current AQI: 120 (Threshold: 100) - Alert triggered)常见故障排查方向:
.env)管理,避免直接暴露在命令行中。--restart unless-stopped确保服务稳定性。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务