Переглянути джерело

fix: 修复Docker多架构兼容性并更新部署文档

- 修复entrypoint.sh中硬编码supercronic-linux-amd64导致arm64/arm架构无法运行的问题
- 正式发布官方 Docker 镜像 wantcat/trendradar,支持多架构
- 优化 Docker 部署流程,无需本地构建即可快速使用
sansan 8 місяців тому
батько
коміт
a95d21b850
4 змінених файлів з 172 додано та 33 видалено
  1. 22 0
      docker/docker-compose-build.yml
  2. 1 3
      docker/docker-compose.yml
  3. 2 2
      docker/entrypoint.sh
  4. 147 28
      readme.md

+ 22 - 0
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}

+ 1 - 3
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
 

+ 2 - 2
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 "$@"

+ 147 - 28
readme.md

@@ -186,7 +186,8 @@ GitHub 一键 Fork 即可使用,无需编程基础。
 ### 2025/09/04 - v2.1.1
 
 - 修复docker在某些架构中无法正常运行的问题
-
+- 正式发布官方 Docker 镜像 wantcat/trendradar,支持多架构
+- 优化 Docker 部署流程,无需本地构建即可快速使用
 
 <details>
 <summary><strong>👉 历史更新</strong></summary>
@@ -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 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 logs -f trend-radar
    
-   # 重启定时服务
-   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/
+```
+
 </details>
 
+
+
+
 ## ☕ 学习交流与1元点赞
 
 > 心意到就行,收到的点赞用于提高开发者开源的积极性