Автоматически обновлять контейнеры Docker с помощью веб-хуков

10

Я создал репозиторий Github и Docker. Оба прекрасно работают вместе: когда я помещаю новую версию Dockerfile в Github, в репозитории Docker автоматически создается новый образ.

Теперь я хотел бы, чтобы мои работающие контейнеры автоматически обновлялись, когда базовый образ (пере) собирался.

Как я могу добиться этого с помощью репозиториев Docker?

Пи Джей Бержерон
источник
1
Если есть «легкий» (такой же простой) способ добиться того же, не используя веб-хуки, мне тоже интересно. :)
Пи Джей Бержерон,
2
github.com/schickling/docker-hook
Ксавье Лукас,

Ответы:

3

Команда Century Link Labs разработала 2 новых инструмента с открытым исходным кодом, которые могут использовать веб-хуки для обновления работающих контейнеров.

Их первое приложение - Zodiac , использующее модель развертывания «push». Это легкий инструмент, созданный поверх Docker Compose , для простого развертывания и отката докеризованных приложений. Он поддерживает историю всех развертываний, что также позволяет вам вернуться к предыдущему развертыванию.

Их второе приложение Watchtower использует модель развертывания «по запросу». Эта модель позволяет контейнерам Docker, находящимся за брандмауэром, обнаруживать и более безопасно извлекать изменения, не открывая внешний порт.

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

Я не имею никакого отношения к Century Link Labs.

Docker Puller - еще одно простое приложение, на которое вы можете взглянуть .

Тони О'Хаган
источник
Возможно, вы также захотите взглянуть на это обсуждение применения обновлений безопасности из базовых образов
Тони О'Хаган,
Некоторые из этих ссылок теперь не работают, но проекты GitHub остаются
Тони О'Хаган
0

Существует также более свежая версия Docker-Image-Puller.

Он подключен напрямую к сокету вашего Docker и использует Docker API для обновления ваших работающих контейнеров, которые используют изображение, указанное вами в webhook. Это довольно просто, возможно, в будущем может быть добавлено больше опций

Tuxity
источник
-1

Я нашел это, но я еще не пробовал:

https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcf Это статья об использовании webhook для развертывания контейнера с помощью док-хаба.

В основном, это говорит о том, что вы можете использовать вид инструмента (проверьте ссылку ниже), чтобы управлять webhook на «машине» докера. https://github.com/iaincollins/docker-deploy-webhook

emj365
источник
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.
Майкл Хэмптон
@MichaelHampton Я думаю, что мой ответ будет полезным, я добавил больше описания.
emj365