差異處

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

連向這個比對檢視

下次修改
前次修改
tech:docker-upgrade [2024/07/24 18:10] – 建立 jonathantech:docker-upgrade [2025/02/25 23:26] (目前版本) – [CLI 模式] jonathan
行 1: 行 1:
 ====== 使用 watchtower 自動更新 docker images ====== ====== 使用 watchtower 自動更新 docker images ======
  
 +==== 定期模式 ====
 +  * .env 檔加入 THE_HOST <cli>
 +echo THE_HOST=`hostname` >> .env
 +</cli>
   * 在 docker-compose.yml 內 services: 加入 watchtower: Exp <file>   * 在 docker-compose.yml 內 services: 加入 watchtower: Exp <file>
 services: services:
行 8: 行 12:
  
   watchtower:   watchtower:
 +    container_name: watchtower
     image: containrrr/watchtower     image: containrrr/watchtower
     volumes:     volumes:
       - /var/run/docker.sock:/var/run/docker.sock       - /var/run/docker.sock:/var/run/docker.sock
     environment:     environment:
 +      - TZ=Asia/Taipei
       - WATCHTOWER_SCHEDULE=0 0 4 * * *  # 每天凌晨4點檢查更新       - WATCHTOWER_SCHEDULE=0 0 4 * * *  # 每天凌晨4點檢查更新
-      - WATCHTOWER_CLEANUP=true  # 清理舊的像 +      - WATCHTOWER_CLEANUP=true  # 清理舊的 
-      - 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_HOSTNAME=${THE_HOST} 
 +      #- [email protected] 
 +      #- [email protected] 
 +      #- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com 
 +      #- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 
 +      #- [email protected] 
 +      #- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password 
 +      #- WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2
     labels:     labels:
       - "com.centurylinklabs.watchtower.enable=true"       - "com.centurylinklabs.watchtower.enable=true"
     restart: unless-stopped     restart: unless-stopped
-</file> +</file
 + 
 +==== CLI 模式 ==== 
 +  * 直接執行 docker cli<cli> 
 +docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once 
 +</cli>或是<cli> 
 +docker compose run watchtower --run-once 
 +</cli> 
 + 
 +==== API 模式 ==== 
 +  * 參考 - https://containrrr.dev/watchtower/http-api-mode/ 
 +  * 如果不想定期檢查更新, 可以透過呼叫 API 方式進行檢查更新 
 +  * Exp. Listen Port:8383 , API-Token:mytoken-123456789 
 +  * docker-compose.yml<file> 
 +services: 
 +  watchtower: 
 +    container_name: watchtower 
 +    image: containrrr/watchtower 
 +    volumes: 
 +      - /var/run/docker.sock:/var/run/docker.sock 
 +    command: --http-api-update 
 +    environment: 
 +      - TZ=Asia/Taipei 
 +      - WATCHTOWER_HTTP_API_TOKEN=mytoken-123456789 
 +      - WATCHTOWER_CLEANUP=true 
 +      - WATCHTOWER_NOTIFICATIONS=email 
 +      - WATCHTOWER_NOTIFICATIONS_HOSTNAME=${THE_HOST} 
 +      - WATCHTOWER_NOTIFICATIONS_HOSTNAME=myserver 
 +      - [email protected] 
 +      - [email protected] 
 +      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com 
 +      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 
 +      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=myaccountid 
 +      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=mypassword 
 +      - WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 
 +    labels: 
 +      - "com.centurylinklabs.watchtower.enable=true" 
 +    ports: 
 +      - 8383:8080 
 +    restart: unless-stopped 
 +</file> 
 +    * 呼叫 API 方式<cli> 
 +curl -H "Authorization: Bearer mytoken-123456789" http://localhost:8383/v1/update 
 +</cli>
  
 ===== 參考網址 ===== ===== 參考網址 =====
   * https://claude.ai/   * https://claude.ai/
 +  * https://containrrr.dev/watchtower/
  
 {{tag>docker auto-upgrade}} {{tag>docker auto-upgrade}}
  • tech/docker-upgrade.1721815841.txt.gz
  • 上一次變更: 2024/07/24 18:10
  • jonathan