Мое приложение состоит из веб-сервера (node.js), нескольких рабочих (node.js) и базы данных Postgres. Обычно я просто создавал приложение на heroku с админом postgres и предлагал приложение там с процессами, определенными в Procfile
.Как доставить докеретированное приложение клиенту?
Однако клиент хочет, чтобы приложение доставлялось на его частный сервер с докером. Итак, поток должен выглядеть так: я вношу некоторые изменения в моем приложении node.js (на веб-сервере на рабочих), «нажимать» изменения на репо (docker hub?) И клиент, когда он готов «тянет» измененное приложение (изображения ?) на свой сервер и приложение (контейнеры докеров?) перезапустите с новым обновленным кодом.
Я новичок в докер и даже после прочтения нескольких статей/учебники я не знаю, как я могу использовать докер ...
Так в идеале, если бы один докер изображение (в Докер хаб), который будет содержать мой код приложения, база данных и клиент могли бы как-то потянуть его и просто запустить ... Возможно ли это с докером?
Изображение docker для службы может стать очень громоздким, если вы создаете и распространяете полное изображение os для каждого компонента вашей системы. Он отлично работает для чего-то вроде [go] (https://golang.org/), где не может быть никаких зависимостей и крошечных образов, а не только для приложения с несколькими зависимостями пакета bloaty os. Вы можете запускать несколько контролируемых процессов в контейнере. Вы также можете распространять одно базовое изображение, которое может запускать все ваши индивидуальные службы. – Matt
@Matt Это правда, архитектура микросервиса не всегда удобна. Но иногда это может быть полезно, например. мы запускаем несколько приложений python и, следовательно, у нас есть общий базовый образ python для всех из них -> размер изображения докеров относительно невелик. –
Да, маленький хороший. Маленький и общий образ замечательный. Легко проскальзывать в создание, хранение и распространение больших изображений, которые в основном просто дублируют друг друга для очень небольшой разницы в контенте. Когда вы могли бы сделать то же самое с одним изображением, но запустили два разных способа в две различные контейнерные службы. – Matt