Watchtower для Docker

Средний рейтинг
Еще нет оценок
Мой рейтинг:

Всем привет.

Потребовалось настроить автоматическое обновление контейнеров после публикации обновленных образов в репозитории.

Можно это сделать в pipeline Ci\CD Gitlab’а, но в данном конкретном случае было принято решение воспользоваться отдельным инструментом.

Собственно, Watchtower — есть тот самый инструмент. Сразу скажу, что проект давно не развивается, судя по github’ у, но тем не менее решили его использовать (пока что).

Хорошее или плохое такое решение — пусть каждый сам судит.

Итак…

Подготовка.

У нас используется 2 разных репозитория Nexus для хранения образов Docker:

1-й внутренний. Там лежат, скажем так, не изменяемые образы, которые мы используем в своём проекте.

2- й внешний.  Там лежат образы проекта, которые обновляются по мере устранения ошибок, добавления функционала и т.п.

Надо создать файл конфигурации с адресами и доступами к данным репозиториям.

Все адреса и названия приведены для примера. У себя надо указывать реальные.

Создадим сам файл конфигурации

с таким содержимым:

где:

  • nexus1.internal.local — внутренний репозиторий,
  • nexus2.external.glob — внешний репозиторий.
  • auth — данные для авторизации

Auth создать можно так:

где:

  • user1 — имя пользователя,
  • password1 — пароль пользователя.

и полученное значение вставить в двойные кавычки — »

Теперь подготовим файл для docker-compose:

с таким содержимым:

где:

  • image — используемый образ,
  • container_name — название будущего контейнера,
  • restart — политика перезапуска контейнера,
  • enviroment — окружение:
    • TZ: Europe/Moscow — временная зона,
    • WATCHTOWER_POLL_INTERVAL: 60 — время проверки новых образов в репозиториях в секундах,
  • volumes — то, что будет «прокинуто» в контейнер.
    • созданный выше файл конфигурации,
    • и сокет самого docker’а.
Если у вас всё через прокси

добавить в environment заменив адрес и порт на свои

[свернуть]

Это самый просто пример. Если что-то более экзотическое надо, то в руководстве всё описано.

Сам запуск:

Лог запуска у меня такой (я использовал форк-версию):

лог

Как видно он каждую минуту проверяет обновление. И посчитал количество контейнеров.

[свернуть]

На момент создания этой заметки обновлять было нечего, т.ч. ниже будет лог раннего тестирования:

лог обновления

Как видно успешное обновление.

[свернуть]

Так же можно настроить оповещение про обновление, но я пока это не делал. Позже добавлю, как разберусь.

 

[Заметка_дополняется]

 

Ссылки:

Проект | Он же на Github

Форк проекта

Образы контейнеров:

оригинал: containrrr_watchtower_latest

форк (для систем x64): beatkin_watchtower_adm64-latest

 

 

If you found an error, highlight it and press Shift + Enter or to inform us.

Фото аватара

Дмитрий

родился, учился, работаю-учусь

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии