From a95d21b850f11501140b6f526f8c8bec900c11bb Mon Sep 17 00:00:00 2001 From: sansan <77180927+sansan0@users.noreply.github.com> Date: Thu, 4 Sep 2025 20:45:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DDocker=E5=A4=9A?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=E5=85=BC=E5=AE=B9=E6=80=A7=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=83=A8=E7=BD=B2=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复entrypoint.sh中硬编码supercronic-linux-amd64导致arm64/arm架构无法运行的问题 - 正式发布官方 Docker 镜像 wantcat/trendradar,支持多架构 - 优化 Docker 部署流程,无需本地构建即可快速使用 --- docker/docker-compose-build.yml | 22 ++++ docker/docker-compose.yml | 4 +- docker/entrypoint.sh | 4 +- readme.md | 175 +++++++++++++++++++++++++++----- 4 files changed, 172 insertions(+), 33 deletions(-) create mode 100644 docker/docker-compose-build.yml diff --git a/docker/docker-compose-build.yml b/docker/docker-compose-build.yml new file mode 100644 index 0000000..263bd2c --- /dev/null +++ b/docker/docker-compose-build.yml @@ -0,0 +1,22 @@ +services: + trend-radar: + build: + context: .. + dockerfile: docker/Dockerfile + container_name: trend-radar + restart: unless-stopped + + volumes: + - ../config:/app/config:ro + - ../output:/app/output + + environment: + - TZ=Asia/Shanghai + - FEISHU_WEBHOOK_URL=${FEISHU_WEBHOOK_URL:-} + - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-} + - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-} + - DINGTALK_WEBHOOK_URL=${DINGTALK_WEBHOOK_URL:-} + - WEWORK_WEBHOOK_URL=${WEWORK_WEBHOOK_URL:-} + - CRON_SCHEDULE=${CRON_SCHEDULE:-*/5 * * * *} + - RUN_MODE=${RUN_MODE:-cron} + - IMMEDIATE_RUN=${IMMEDIATE_RUN:-true} diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 263bd2c..d633572 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,8 +1,6 @@ services: trend-radar: - build: - context: .. - dockerfile: docker/Dockerfile + image: wantcat/trendradar:latest container_name: trend-radar restart: unless-stopped diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 08a8e81..01d489d 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -22,7 +22,7 @@ case "${RUN_MODE:-cron}" in echo "📅 生成的crontab内容:" cat /tmp/crontab - if ! /usr/local/bin/supercronic-linux-amd64 -test /tmp/crontab; then + if ! /usr/local/bin/supercronic -test /tmp/crontab; then echo "❌ crontab格式验证失败" exit 1 fi @@ -36,7 +36,7 @@ case "${RUN_MODE:-cron}" in echo "⏰ 启动supercronic: ${CRON_SCHEDULE:-*/30 * * * *}" echo "🎯 supercronic 将作为 PID 1 运行" - exec /usr/local/bin/supercronic-linux-amd64 -passthrough-logs /tmp/crontab + exec /usr/local/bin/supercronic -passthrough-logs /tmp/crontab ;; *) exec "$@" diff --git a/readme.md b/readme.md index 4f3d17b..928606c 100644 --- a/readme.md +++ b/readme.md @@ -186,7 +186,8 @@ GitHub 一键 Fork 即可使用,无需编程基础。 ### 2025/09/04 - v2.1.1 - 修复docker在某些架构中无法正常运行的问题 - +- 正式发布官方 Docker 镜像 wantcat/trendradar,支持多架构 +- 优化 Docker 部署流程,无需本地构建即可快速使用
👉 历史更新 @@ -655,47 +656,165 @@ platforms: ### 🐳 Docker 部署 -1. **克隆项目并进入目录**: +#### 方式一:快速体验(一行命令) + +```bash +# 直接运行,使用默认配置(仅体验功能,无推送通知) +docker run -d --name trend-radar \ + -v ./config:/app/config:ro \ + -v ./output:/app/output \ + wantcat/trendradar:latest + +# 或者配置环境变量启用推送通知 +docker run -d --name trend-radar \ + -v ./config:/app/config:ro \ + -v ./output:/app/output \ + -e FEISHU_WEBHOOK_URL="你的飞书webhook" \ + -e DINGTALK_WEBHOOK_URL="你的钉钉webhook" \ + -e WEWORK_WEBHOOK_URL="你的企业微信webhook" \ + -e TELEGRAM_BOT_TOKEN="你的telegram_bot_token" \ + -e TELEGRAM_CHAT_ID="你的telegram_chat_id" \ + -e CRON_SCHEDULE="*/30 * * * *" \ + wantcat/trendradar:latest +``` + +**注意**:快速体验模式需要先准备配置文件: +```bash +# 创建配置目录并下载配置文件 +mkdir -p config output +wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/ +wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/ +``` + +#### 方式二:使用 docker-compose(推荐) + +1. **创建项目目录和配置**: ```bash - git clone https://github.com/sansan0/TrendRadar.git - cd TrendRadar + # 创建目录结构 + mkdir -p trendradar/{config,output} + cd trendradar + + # 下载配置文件模板 + wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/ + wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/ + + # 下载 docker-compose 配置 + wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/.env + wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/docker-compose.yml ``` -2. **配置文件**: - - 修改 `config/config.yaml` 和 `config/frequency_words.txt` - - **推送链接填写**,**设置推送定时**可通过 .env 进行配置 +2. **配置文件说明**: + - `config/config.yaml` - 应用主配置(报告模式、推送设置等) + - `config/frequency_words.txt` - 关键词配置(设置你关心的热点词汇) + - `.env` - 环境变量配置(webhook URLs 和定时任务) 3. **启动服务**: ```bash - cd docker + # 拉取最新镜像并启动 + docker-compose pull docker-compose up -d ``` -4. **管理服务**: +4. **查看运行状态**: ```bash - # 查看运行状态 - docker exec -it trend-radar python manage.py status + # 查看日志 + docker logs -f trend-radar - # 手动执行一次爬虫 - docker exec -it trend-radar python manage.py run - - # 查看实时日志 - docker exec -it trend-radar python manage.py logs - - # 显示当前配置 - docker exec -it trend-radar python manage.py config - - # 显示输出文件 - docker exec -it trend-radar python manage.py files - - # 重启定时服务 - docker exec -it trend-radar python manage.py restart - - # 显示帮助信息 - docker exec -it trend-radar python manage.py help + # 查看容器状态 + docker ps | grep trend-radar ``` + +#### 方式三:本地构建(开发者选项) + +如果需要自定义修改代码或构建自己的镜像: + +```bash +# 克隆项目 +git clone https://github.com/sansan0/TrendRadar.git +cd TrendRadar + +# 修改配置文件 +vim config/config.yaml +vim config/frequency_words.txt + +# 使用构建版本的 docker-compose +cd docker +cp docker-compose-build.yml docker-compose.yml + +# 构建并启动 +docker-compose build +docker-compose up -d +``` + +#### 镜像更新 + +```bash +# 方式一:手动更新 +docker pull wantcat/trendradar:latest +docker-compose down +docker-compose up -d + +# 方式二:使用 docker-compose 更新 +docker-compose pull +docker-compose up -d +``` + +#### 服务管理命令 + +```bash +# 查看运行状态 +docker exec -it trend-radar python manage.py status + +# 手动执行一次爬虫 +docker exec -it trend-radar python manage.py run + +# 查看实时日志 +docker exec -it trend-radar python manage.py logs + +# 显示当前配置 +docker exec -it trend-radar python manage.py config + +# 显示输出文件 +docker exec -it trend-radar python manage.py files + +# 查看帮助信息 +docker exec -it trend-radar python manage.py help + +# 重启容器 +docker restart trend-radar + +# 停止容器 +docker stop trend-radar + +# 删除容器(保留数据) +docker rm trend-radar +``` + +#### 数据持久化 + +生成的报告和数据默认保存在 `./output` 目录下,即使容器重启或删除,数据也会保留。 + +#### 故障排查 + +```bash +# 检查容器状态 +docker inspect trend-radar + +# 查看容器日志 +docker logs --tail 100 trend-radar + +# 进入容器调试 +docker exec -it trend-radar /bin/bash + +# 验证配置文件 +docker exec -it trend-radar ls -la /app/config/ +``` +
+ + + ## ☕ 学习交流与1元点赞 > 心意到就行,收到的点赞用于提高开发者开源的积极性