Я создал репозиторий Github и репозиторий Docker. Оба работают вместе очень хорошо: когда я отправляю новую версию Dockerfile на Github, в репозитории Docker автоматически создается новый образ.
Теперь я хотел бы, чтобы мои работающие контейнеры автоматически обновлялись при (пере) построении базового образа.
Как я могу добиться этого с помощью веб-перехватчиков репозиториев Docker?
Команда Century Link Labs разработала 2 новых инструмента с открытым исходным кодом, которые могут использовать веб-хуки для обновления запущенных контейнеров.
Их первое приложение Зодиак который использует модель развертывания "push". Это легкий инструмент, созданный поверх Docker Compose, для легкого развертывания и отката докеризованных приложений. Он поддерживает историю всех развертываний, что также позволяет вам вернуться к предыдущему развертыванию.
Их второе приложение Сторожевая башня использует модель развертывания «вытягивание». Эта модель позволяет контейнерам Docker, которые находятся за брандмауэром, обнаруживать и более безопасно извлекать изменения, не открывая внешний порт.
Сторожевая башня знает, как правильно перезапустить набор связанных контейнеров. Если обновление обнаружено для одной из зависимостей в группе связанных контейнеров, Watchtower остановит и запустит все контейнеры в правильном порядке, чтобы приложение вернулось обратно правильно.
Я не имею отношения к Century Link Labs.
Еще одно более простое приложение, на которое вы, возможно, захотите взглянуть, - это Докер Съемник.
Есть и более свежий docker-image-съемник
Он подключен напрямую к сокету вашего Docker и использует Docker API для обновления запущенных контейнеров, которые используют изображение, указанное в веб-перехватчике. Это довольно просто, возможно, в будущем можно будет добавить больше опций
Я нашел это, но еще не пробовал:
https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcf это статья об использовании веб-перехватчика для развертывания контейнера с докер-хабом.
По сути, он говорит, что вы можете использовать какой-то инструмент (проверьте ссылку ниже), чтобы обрабатывать веб-перехватчик на вашей «машине» докера. https://github.com/iaincollins/docker-deploy-webhook