Как обновить контейнеры в Googles container optimized os?

#google-cloud-platform #pipeline #google-container-optimized-os #buddy-works

# #google-облачная платформа #конвейер #google-container-optimized-os #приятель-работает

Вопрос:

Я хочу использовать конвейер приятелей для отправки новых изображений в DockerHub. Когда загружаются новые изображения, оптимизированная для контейнеров ОС Google должна извлекать новые. Я использую компьютерный движок Google для размещения docker-compose в оптимизированной для контейнеров ОС Google. Как я могу это сделать?

Комментарии:

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

2. Посмотрите gcloud compute instances update-container . Однако я считаю, что это поддерживает только реестр контейнеров Google. cloud.google.com/sdk/gcloud/reference/compute/instances /…

Ответ №1:

Предполагая, что вы используете тег ‘:latest’ в docker-compose, последняя версия изображения всегда будет извлекаться при запуске этого:

docker-compose down amp;amp; docker-compose build --pull amp;amp; docker-compose up
(имейте в виду, что обновление может вызвать очень небольшое время простоя во время извлечения изображений контейнеров)

Это можно объединить с поддержкой webhook в Docker Hub, чтобы запускать эту команду при загрузке нового изображения. См. https://docs.docker.com/docker-hub/webhooks /
Вам понадобится некоторая конечная точка для получения POST-вызова от webhook и выполнения команды, например, такой: https://github.com/adnanh/webhook

Его можно настроить как конечную точку HTTP для получения webhook от Docker Hub при загрузке нового образа, чтобы выполнить приведенную выше команду. По соображениям безопасности я бы посоветовал использовать конечную точку HTTPS и белый список IP-адресов для входящего webhook, который разрешает трафик только с IP-адресов Amazon ELB (поскольку это то, что использует DockerHub). Дополнительно вы можете проверить, что URL обратного вызова из https://registry.hub.docker.com /.
К сожалению, DockerHub пока не поддерживает использование секрета для проверки вызывающего абонента: https://github.com/docker/roadmap/issues/51