自动更新 AWS Lambda Layer 中的 MaxMind GeoIP 数据库的 Docker 镜像。
- 🔄 自动更新 GeoIP 数据库
- ⚡ 支持 AWS Lambda Layer 更新
- 🕒 内置定时任务功能
- ⚙️ 灵活的配置选项
- 🐳 Docker 容器化部署
- 创建 docker-compose.yml:
yaml
services:
geoip-updater:
image: yourusername/geoip-updater:latest
container_name: geoip-updater
restart: unless-stopped
env_file:
- .env
- 创建 .env 文件:
# Download method
USE_MAXMIND_DIRECT=true
# MaxMind configuration
MAXMIND_ACCOUNT_ID=your_account_id
MAXMIND_LICENSE_KEY=your_license_key
MAXMIND_EDITION_ID=GeoLite2-City
MAXMIND_SUFFIX=tar.gz
# AWS Configuration
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_PROFILE=geoip-updater
AWS_REGION=us-east-2
# Lambda Configuration
LAMBDA_LAYER_NAME=GeoLite2
# GeoIP Database Configuration
GEOIP_DOWNLOAD_URL=https://raw.githubusercontent.com/P3TERX/GeoLite.mmdb/download/GeoLite2-City.mmdb
# Cron Configuration
CRON_SCHEDULE=0 0 * * *
# Timezone
TZ=Asia/Shanghai
- 启动服务:
docker-compose up -d
docker run -d \
--name geoip-updater \
--restart unless-stopped \
--env-file .env \
Claire9518/geoip-updater:latest
| 变量名 | 描述 | 必需 | 默认值 |
|---|---|---|---|
| USE_MAXMIND_DIRECT | 是否使用MaxMind进行下载 | 是 | false |
| MAXMIND_ACCOUNT_ID | MaxMind 账户 ID | 是 | - |
| MAXMIND_LICENSE_KEY | MaxMind License Key | 是 | - |
| MAXMIND_EDITION_ID | 下载文件类别 | 是 | GeoLite2-City |
| MAXMIND_SUFFIX | 下载文件类型 | 是 | tar.gz |
| AWS_ACCESS_KEY_ID | AWS 访问密钥 ID | 是 | - |
| AWS_SECRET_ACCESS_KEY | AWS 访问密钥 | 是 | - |
| AWS_PROFILE | AWS 配置文件名称 | 否 | geoip-updater |
| PRIMARY_REGION | AWS 主区域 | 否 | us-east-2 |
| AWS_REGION | AWS 区域 | 否 | us-east-2 |
| LAMBDA_LAYER_NAME | Lambda Layer 名称 | 否 | GeoLite2 |
| GEOIP_DOWNLOAD_URL | GeoIP 数据库下载地址 | 否 | (默认地址) |
| CRON_SCHEDULE | Cron 更新计划 | 否 | 0 0 * * * |
| TZ | 时区 | 否 | Asia/Shanghai |
支持以下命令行参数:
--action: 选择操作模式update: 执行更新(默认)check: 检查状态schedule: 启动定时任务test-update: 测试更新层test-function: 测试函数更新cleanup: 清理临时文件
例如:
docker run Claire9518/geoip-updater:latest --action check
docker run --env-file .env Claire9518/geoip-updater:latest --action check
docker run --env-file .env Claire9518/geoip-updater:latest --action update
docker run -d --env-file .env Claire9518/geoip-updater:latest --action schedule
# 查看容器日志
docker logs geoip-updater
# 实时跟踪日志
docker logs -f geoip-updater