Как автоматически обновить / вытащить docker изображение на GCP с docker -compose - PullRequest
1 голос
/ 28 февраля 2020

У меня есть экземпляр на GCP, запускающий docker -композитный файл со многими контейнерами. Изображения размещены в GCR.

Я просто хочу "обновить sh" запущенного экземпляра, вытягивая новое изображение, когда в GCR доступно новое изображение.

I'm используя GitHub Actions для создания и передачи sh образа в GCP.

Я пробую команду gcloud beta compute instances update-container, но ожидается, что она будет иметь одно изображение на экземпляр.

Я не хочу использовать Kubernetes для этого.

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

1 Ответ

1 голос
/ 28 февраля 2020

TL; DR : используйте PUB / SUB для запуска обновления образа (docker pull) и обновления запущенного контейнера.

Когда в ваш репозиторий Container Registry внесены изменения, например, когда были выдвинуты, помечены или удалены изображения, вы можете получать уведомления, используя Pub / Sub . Pub / Sub публикует сообщения о вашем хранилище на именованные ресурсы, называемые темами. Эти сообщения принимаются приложениями, подписанными на Темы Pub / Sub . Приложения подписчика отправляют уведомления при изменении состояния вашего репозитория.

Вы можете использовать сообщения Pub / Sub для выполнения команд внутри вашего экземпляра GCE. Google создал пример с именем «Надежное планирование задач в Google Compute Engine с Cloud Scheduler» , в котором описывается процесс того, как экземпляр GCE может выполнить команду при публикации определенного сообщения из определенного топи c. в Pub / Sub.

Я знаю, что в документе говорится о Cloud Scheduler , но Cloud Scheduler работает путем публикации сообщений в Pub / Sub themes . Поскольку GCR может публиковать sh сообщений о действиях , вместо использования сообщений Pub / Sub из Cloud Scheduler вы можете запускать некоторые обновления внутри своего экземпляра GCE, используя сообщения, опубликованные GCR.

...