#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