Докер, Часть Вторая. Полуавтоматическая Винтовка С Поиском Ног

Пожалуйста, начните читать серию с начала: habrahabr.ru/post/267441



Как не использовать Docker.

Чтобы понять эту статью, вам необходимо знать основные команды Dockerfile для создания образов и принципы объектно-ориентированного проектирования.

Открываю документацию любого официального образа сервисного ПО — например, Nginx и нахожу раздел «Как использовать этот образ».

Нам предлагают создать свой образ на основе официального, скопировав в него наши файлы, настроить сопоставление портов с миром и смонтировать свою папку с конфигами.

   

FROM .

COPY .

/usr/src/myapp WORKDIR /usr/src/myapp

Да, нам предлагают наследовать Model от View в одном звездочном классе и платить за хранение образов наших фирменных приложений в Docker Hub. Бизнес, как обычно.

То же самое нам предлагают сделать в образах PHP, Python, Ruby и так далее.

Для Python и Ruby даже сделаны версии с триггерами ONBUILD для построения образов-преемников, с помощью которых приложение из папки будет копироваться в новый образ, «который должен быть всем, что вам нужно» — размером 640 килобайт. К счастью, решение известно столько же, сколько и сама проблема.

«Банда четырех», создатель Java Джеймс Гослинг и Фаулер последние 20 лет говорили: используйте композицию вместо наследования.

Поэтому я поставлю рядом контейнеры с разными сервисами, создам адаптер, объект передачи данных и подключим их через конфиг.

Я использую наследование для расширения существующего функционала в рамках инкапсуляции с учетом принципа подстановки Лискова — например, для подключения к PHP нужных мне расширений и системных библиотек, использующих эти расширения.

Продолжение можно найти Здесь Теги: #docker #oop way #linux #системное администрирование #Архитектурное проектирование #Разработка веб-сайтов #Системный анализ и проектирование #ООП

Вместе с данным постом часто просматривают: