差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:docker-upgrade [2025/02/25 23:26] – [CLI 模式] jonathantech:docker-upgrade [2025/12/25 15:57] (目前版本) – [使用 watchtower 自動更新 docker images] jonathan
行 1: 行 1:
 ====== 使用 watchtower 自動更新 docker images ====== ====== 使用 watchtower 自動更新 docker images ======
 +<note important> 
 +**Watchtower Docker API 版本不相容問題** 
 +  * 這問題已在 Watchtower GitHub 上被多人回報 
 +    * Issue #2122 - 77+ 人反應相同問題(2025年11月11日開立) 
 +    * Issue #2124, #2125, #2126 - 多個重複問題 
 +    * 官方專案狀態:已停止維護超過 2 年(最後更新:2023年) 
 +  * 內建的 Docker SDK 版本為 API 1.25(太舊) 
 +  * 當 Alpine 升級到 3.23 的 Docker 29 要求最低 API 1.44 就會出現異常  
 +  * 目前 Workaround 方式是改用 nickfedor fork 維護的 images 
 +  * 更新 docker-compose.yml 語法<cli> 
 +cp docker-compose.yml docker-compose.yml.backup && \ 
 +sed -i 's|containrrr/watchtower|nickfedor/watchtower|g' docker-compose.yml && \ 
 +docker-compose down watchtower && \ 
 +docker-compose up -d watchtower 
 +</cli> 
 +</note>
 ==== 定期模式 ==== ==== 定期模式 ====
   * .env 檔加入 THE_HOST <cli>   * .env 檔加入 THE_HOST <cli>
行 13: 行 28:
   watchtower:   watchtower:
     container_name: watchtower     container_name: watchtower
-    image: containrrr/watchtower+    #image: containrrr/watchtower 
 +    image: nickfedor/watchtower
     volumes:     volumes:
       - /var/run/docker.sock:/var/run/docker.sock       - /var/run/docker.sock:/var/run/docker.sock
行 20: 行 36:
       - WATCHTOWER_SCHEDULE=0 0 4 * * *  # 每天凌晨4點檢查更新       - WATCHTOWER_SCHEDULE=0 0 4 * * *  # 每天凌晨4點檢查更新
       - WATCHTOWER_CLEANUP=true  # 清理舊的映像檔       - WATCHTOWER_CLEANUP=true  # 清理舊的映像檔
 +      #- WATCHTOWER_NOTIFICATIONS_HOSTNAME=${THE_HOST}
 +      #- WATCHTOWER_NOTIFICATIONS=shoutrrr  # 使用 Discord 通知
 +      #- WATCHTOWER_NOTIFICATION_URL=discord://token@id
 +      #- WATCHTOWER_NOTIFICATION_TITLE=Watchtower Update
 +      #- WATCHTOWER_NOTIFICATIONS_LEVEL=info
       #- WATCHTOWER_NOTIFICATIONS=slack  # 使用 Slack 通知       #- WATCHTOWER_NOTIFICATIONS=slack  # 使用 Slack 通知
       #- SLACK_HOOK_URL=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK       #- SLACK_HOOK_URL=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
       #- WATCHTOWER_NOTIFICATIONS=email  # 使用 EMail 通知       #- WATCHTOWER_NOTIFICATIONS=email  # 使用 EMail 通知
-      #- WATCHTOWER_NOTIFICATIONS_HOSTNAME=${THE_HOST} 
       #- [email protected]       #- [email protected]
       #- [email protected]       #- [email protected]
行 35: 行 55:
     restart: unless-stopped     restart: unless-stopped
 </file> </file>
 +<note tip>
 +
 +  * **關於 WATCHTOWER_NOTIFICATION_URL 的設定**
 +    * 假設您的 Discord webhook URL 是:<cli>https://discord.com/api/webhooks/123456789012345678/abcdefghijklmnopqrstuvwxyz1234567890</cli>
 +    * 需要轉換為 Shoutrrr 格式:<cli>discord://abcdefghijklmnopqrstuvwxyz1234567890@123456789012345678</cli>
  
 +</note>
 ==== CLI 模式 ==== ==== CLI 模式 ====
   * 直接執行 docker cli<cli>   * 直接執行 docker cli<cli>
-docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once+docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once
 </cli>或是<cli> </cli>或是<cli>
 docker compose run watchtower --run-once docker compose run watchtower --run-once
行 51: 行 77:
   watchtower:   watchtower:
     container_name: watchtower     container_name: watchtower
-    image: containrrr/watchtower+    #image: containrrr/watchtower 
 +    image: nickfedor/watchtower
     volumes:     volumes:
       - /var/run/docker.sock:/var/run/docker.sock       - /var/run/docker.sock:/var/run/docker.sock
行 82: 行 109:
   * https://claude.ai/   * https://claude.ai/
   * https://containrrr.dev/watchtower/   * https://containrrr.dev/watchtower/
 +  * https://github.com/nicholas-fedor/watchtower/
  
 {{tag>docker auto-upgrade}} {{tag>docker auto-upgrade}}
  • tech/docker-upgrade.1740497185.txt.gz
  • 上一次變更: 2025/02/25 23:26
  • jonathan