- 19, Oct 2024
- #1
Я новичок в экосистеме докеров и пытаюсь найти подходящую инфраструктуру развертывания для системы, над которой я работаю.
Представьте себе следующий сценарий: система состоит из трех микросервисов — БД, основного сервера и приложения (сервер + клиент). Для каждого из них я создал образ докера. Я также связал их вместе с помощью docker compose, чтобы описать систему в целом и описать связи между микросервисами. Во время выпуска микросервиса я помечаю изображение соответствующим тегом и отправляю его в частный репозиторий Docker. Пока все хорошо, работает локально.
Теперь представьте, что у меня есть три разных производственных клиента, и у каждого есть свой стоечный Linux-сервер. Я не уверен, как мне подойти к развертыванию системы с помощью докера:
1) Я хочу иметь возможность указывать разные версии микросервисов для разных производственных серверов. Как мне к этому подойти? Должен ли я иметь один общий файл docker-compose или один файл с указанными версиями для каждой производственной среды?
Где мне следует хранить docker-compose? В репозитории? Как он потом копируется на удаленный хост? Как развернуть файл docker-compose.yml на удаленном хосте?
2) Как я могу развернуть новую версию микросервиса на удаленном хосте? Я ищу инструмент, чтобы, если я запущу
docker-compose up -d
он запустит образ приложения версии 2.33 на сервере server1. Есть ли для этого инструмент?
Например, я использовал инструмент для развертывания метеора-метеора, который отправляет образ докера приложения метеора на удаленный хост и запускает его там - я ищу то же самое, но для случайного образа докера/составления докера.
Я не могу найти наилучшую практику сейчас в экосистеме докеров для развертывания образа на простом сервере без AWS/Beanstalk или какой-либо другой облачной среды. Должен ли я просто подключиться к нему по SSH, скопировать docker-compose и запустить tool deploy [email protected] [server1]
?
Любые мысли оценены по достоинству, спасибо!
#docker #docker-compose #deployment