Добавить метку в контейнер Docker

Как раз когда я писал пост о том, как добавить метку к контейнеру Discourse, я сам разобрался в этом, поэтому решил поделиться здесь, чтобы людям было легче находить это при поиске в Google.

Я хотел добавить метку к своему контейнеру Discourse, чтобы Watchtower не пытался обновлять его каждый раз.

Я просто упустил подсказку, которую выводит скрипт launcher, и не заметил параметр --docker-args.

Чтобы добавить нужную мне метку, я должен был запустить его следующим образом:

./launcher start app --docker-args "--label com.centurylinklabs.watchtower.enable=false"

Я искал в Google и искал информацию больше суток, но не нашел никого, кто хотел бы сделать то же самое, поэтому решил опубликовать это и надеюсь, что кому-то это пригодится.

2 лайка

Чтобы сделать процесс более постоянным по своей природе, вы можете добавить аргументы Docker в файл app.yml, как описано в этом примере с Traefik:

1 лайк

Приветствую,

Сейчас я использую Watchtower для мониторинга и обновления моих Docker-контейнеров в Portainer. Однако я хочу исключить контейнер Discourse из обновлений через Watchtower.
Я не специалист в IT, поэтому прошу вас предоставить краткую инструкцию о том, что именно нужно изменить в моём файле docker-compose.yml для мониторинга Watchtower, а также какие ещё изменения необходимо внести в конфигурацию Discourse.
Буду благодарен за любую помощь.

Вы можете добавить секцию labels: в ваш файл app.yml, чтобы включить метки Docker для контейнера Discourse при его запуске через launcher. Альтернативно, вы можете использовать команду ./launcher start-command app, чтобы увидеть команду запуска Docker, а затем использовать любые необходимые вам переменные окружения для запуска контейнера Discourse.

Вы не указали, что именно требуется Watchtower для исключения Discourse из его работы, поэтому я не могу дать вам более подробную информацию.

После раздумий я понял, что Docker-образ для Discourse не помечен тегом latest. Если я правильно понимаю, Watchtower должен быть способен обнаружить новую версию Docker-образа Discourse.

Поправьте меня, если я ошибаюсь.

Чтобы сделать всё максимально просто: я добавил это в app.yml

# любые дополнительные аргументы для Docker?
docker_args:
  - "--label com.centurylinklabs.watchtower.enable=false"

Спасибо за вашу документацию и помощь здесь!

Использование блока labels применяет метки только к запущенному контейнеру, тогда как способ с docker-args включает метки в контейнеры на этапе их инициализации (я в этом довольно уверен).

Как бы выглядела полная строфа (для копирования и вставки)?

Итак, я позволил процессу завершиться. Watchwatch обновил все остальные контейнеры, кроме Discourse. Хотя он показал ошибку, ничего не сломалось.
@ikarus84, вам удалось разобраться, как правильно настроить его, чтобы предотвратить появление таких ошибок?