Watchtower – автоматическое обновление Docker контейнеров, с отчетом в Telegram
Введение
В данной небольшой заметке разберем такую полезную утилиту как Watchtower.
Watchtower – это удобный инструмент, который поможет автоматически обновлять ваши Docker контейнеры, следя за изменениями в реестре Docker Hub, вам не придется тратить время на ручное обновление каждого контейнера, Watchtower с легкостью выполнит эту задачу за вас.
Установка Watchtower с помощью Docker
Для установки Watchtower как не странно нам понадобится сам Docker, установку Docker и Docker-Compose можете посмотреть в моей заметке.
1. Простой вариант установки, без уведомлений в Telegram
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
2. Вариант установки с уведомлениями в Telegram
Создаем нашего бота в Telegram получаем его токен, узнаем id нашего чата и подставляем в команды ниже:
docker run -d --name watchtower \ -e WATCHTOWER_LIFECYCLE_HOOKS=1 \ -e WATCHTOWER_NOTIFICATIONS=shoutrrr \ -e WATCHTOWER_NOTIFICATION_URL=telegram://ТОКЕН_ВАШЕГО_БОТА@telegram/?channels=ID_ВАШЕГО_ЧАТА \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower
Готово, теперь Watchtower будет отслеживать тег “latest” в реестре Docker Hub и автоматически обновлять ваш контейнер, когда он станет устаревшим. Это позволит вам всегда использовать самую свежую версию контейнера без необходимости проверять и обновлять его вручную.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT
Установка с помощью Docker-Compose
Я чаще использую этот вариант, в нем будет обновление каждое воскресенье в 20:00 с последующей отчисткой старых docker image и отправка отчета в Telegram, замените токен и id чата на свои, создадим директорию и сам docker-compose.yml:
mkdir -p /app/watchtower
cd /app/watchtower/
nano docker-compose.yml
--- version: '3.3' services: watchtower: image: containrrr/watchtower container_name: watchtower restart: unless-stopped volumes: - '/var/run/docker.sock:/var/run/docker.sock' environment: - TZ=Europe/Moscow - WATCHTOWER_LIFECYCLE_HOOKS=True - WATCHTOWER_NOTIFICATIONS=shoutrrr - WATCHTOWER_NOTIFICATION_URL=telegram://ТОКЕН_ВАШЕГО_БОТА@telegram/?channels=ID_ВАШЕГО_ЧАТА - WATCHTOWER_DEBUG=true - WATCHTOWER_CLEANUP=true - WATCHTOWER_SCHEDULE=0 0 23 * * 0
docker compose up -d
Как только процесс успешно завершится, мы получим уведомление через Telegram от нашего бота о выполнении первой проверки, на скриншоте пример вывода в чат от Watchtower:
Вывод
Watchtower представляет собой удобный и простой инструмент, который автоматически обновляет ваши контейнеры Docker. Это помогает вам избежать необходимости вручную обновлять каждый контейнер и поддерживать вашу инфраструктуру в актуальном состоянии. Установка и использование Watchtower занимают всего несколько минут, что значительно упрощает работу с Docker и экономит ваше время.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, или посетить мой сайт, спасибо за потраченное время на чтение и доброго времени суток!)