Являются ли папки с исходным и выходным кодом "приложением" в проектах использованием Docker?
Если раньше мои Full-Stack проекты подразделялись на папку для исходных файлов и папку для выходных файлов (такое подразделение естественно ввиду того, что исходный код я пишу на TypeScript), а файлы с метаданными и конфигурациями, такие как package.json были в корне проекта, то при переходе проектов на Docker организацию файлов, видимо, придётся пересмотреть.
Вот один из найденный мной примеров, в котором всё то, что раньше у меня лежало в корне проекта, теперь находится в docker/webpack.
Тут же возникла путаница с терминологией: если раньше я с приложением отождествлял папку с проектом, то теперь в папке проекта будут и базы данных, и ещё всякие разные сервисы.
Таким образом, я теперь знаю следующие значения термина (веб)-приложения :
- Совокупность всех компонентов, таких как базы данных и микросервисы, а так же собранный исходный код прикладной логики. Ради примера позаимствовал схему из урока по Kubernetes, то есть в этом значении "приложением" называют в совокупности всё то, что на схеме нарисовано:
Результирующий интерактивное отображение в браузере,. (Например, когда рекламщик делает скриншоты UI и говорит "попробуйте новое приложение").
Папка с исходным и/или выходным кодом прикладной логики серверной части, клиентской части или обоих.
Третий вариант, как я могу предположить, в контексте Docker-а уже не употребляется.
Среди тех примеров, что я видел, папки (соответствующие Image-ам) с серверной и клиентской частью называют крайне неочевидными именами, такими как webpack или web. А если сборку проекта осуществляет не только webpack, а ещё gulp?
Итак, вопрос: что же называется "приложением" в контексте Docker-проекта и как называют папку с прикладной логикой приложения (в отличие от папок с базой данных и сторонними сервисами).
Ответы (1 шт):
Сначала хотел бы отметить для будущих читателей: Приложение, завёрнутое в докер ничем не отличается от приложения, выложенного на обычную виртуалку (за исключением способа развертывания). Docker контейнер — это способ передачи и дальнейшей оркестрации (в некотором смысле)
Я бы взял за основу понимание, что приложение — это набор программных компонентов и кода с компилятором (интерпретатором) настроенных на совместную работу для выполнения заложенных (требуемых) функций.
Теперь немного о Docker... В вопросе фигурирует понятие "папок", что меня немного смутило. Я предлагаю рассмотреть функцию докера (лучше сказать утилиту) - docker-compose. Это специальный файл и утилита его запуска для старта нескольких контейнеров с определенной зависимостью.
Например, чтобы приложение заработало, нужно поднять БД, кеш, MTA, nodeJS, nginx и ещё какой-нибудь бэк. Если поднимать всё руками - потребуется ввести с десяток команд перед тем, как всё заработает (когда и если :). Вместо этого придуманы специальные инструкции, которые поднимают компоненты (контейнеры Docker) с определенными параметрами
Именно наличие такой утилиты даёт возможность говорить, что к рамках поставки функционала приложение представляет собой набор компонент.


