LINUX.ORG.RU

В чем плюсы контейнеров для разработки?

 ,


3

3

Вот есть классический подход: наваял тулчейн (например, с помощью crosstool-ng), напихал туда нужных библиотек и таскаешь его с собой между системами в виде архива.

Сейчас модно нахерачить целый докер образ и таскать его с собой.

Вопрос: в чем плюс подобного подхода?

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



Последнее исправление: Trunk (всего исправлений: 1)

Ответ на: комментарий от intelfx

А что решает проблему запуска на другой архитектуре?
Проблему запуска на другой архитектуре решает сборка бинарника под целевую архитектуру

Да. И аргумент приводится типа «а в докере васян уже написал скрипты для автоматической сборки».

Это как раз у твоих тарболлов нет простых путей сохранения состояния, особенно если нужно отделить состояние от артефакта

Распаковал тарбол — запаковал тарбол. Сложность уровня аэрокосмической отрасли.

byko3y ★★★★
()
Ответ на: комментарий от intelfx

Ну с какой радости? man VOLUME или docker run -v

С «docker run -v» ни разу не гладко, volume предпочтительнее, а там уже внезапно выясняется, что почему-то не особо проще стало работать с софтиной.

Это как раз у твоих тарболлов нет простых путей сохранения состояния, особенно если нужно отделить состояние от артефакта

Использовать UnionFS явно никто не запрещал.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Да. И аргумент приводится типа «а в докере васян уже написал скрипты для автоматической сборки».

Ты как-то смешал в кучу и коней, и людей.

При чём тут вообще докер? Докер вообще ортогонален сборке под другую архитектуру. Он никак не помогает и никак не мешает.

Распаковал тарбол — запаковал тарбол. Сложность уровня аэрокосмической отрасли.

Да, и в результате ты получаешь кусок ФС, в котором перемешаны код и данные и который непонятно как обслуживать и обновлять.

И эти люди ещё что-то говорят про ссаные тряпки.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от byko3y

С «docker run -v» ни разу не гладко, volume предпочтительнее, а там уже внезапно выясняется, что почему-то не особо проще стало работать с софтиной.

Звучит бредово. С этого места поподробнее.

Использовать UnionFS явно никто не запрещал.

И снова ты проповедуешь ручной велосипединг против софта, который делает ровно то же самое, но унифицированно и автоматически.

intelfx ★★★★★
()
Ответ на: комментарий от byko3y

в итоге нам нужен тупо линукс

А если нужен не тупо линукс, а конкретная версия конкретного дистрибутива? А если на оффтопике нужно развернуть софт из линукса? Прослойка получается тоньше виртуальной машины, и такие прослойки можно оркестрировать простыми скриптами.

А еще докер позволяет делать снапшот состояния.

Не хочу быть адвокатом докера, но костылить на chroot’ах костыльное окружение дольше и сложнее, не говоря уже о переносимости. С докером все сводится к трем командам: поставить докер, скачать нужный образ, запустить.

Siborgium ★★★★★
()
Ответ на: комментарий от Siborgium

А если на оффтопике нужно развернуть софт из линукса? Прослойка получается тоньше виртуальной машины

Безотносительно всего остального, но докер на оффтопике — это и есть виртуалка (man docker-machine).

intelfx ★★★★★
()
Ответ на: комментарий от byko3y

А по этим условиям будет виртуалочка без докера. Лишная сущность-с.

Если ты пишешь линуксовый(!) софт для строго одного заказчика, у которого строго только винда(!), то да, лишняя сущность. Но это сказочные условия, таких не бывает.

intelfx ★★★★★
()
Ответ на: комментарий от byko3y

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

Ещё раз. Ты говоришь, что докерастов нужно гнать ссаными тряпками, но при этом не можешь предложить ничего взамен, кроме переизобретения докера своими руками с дополнительными недостатками.

это не есть какие бы то ни было серьезные преимущества

это не такой уж и чудовищный недостаток

Но тем не менее они есть — у докера преимущества (пусть несерьёзные), у тебя недостатки (пусть не чудовищные). А какие у твоего подхода преимущества? Почему нужно гнать ссаными тряпками именно докер, а не твой костыль?

intelfx ★★★★★
()
Ответ на: комментарий от anonymous

бог его знает на какие шалости ты шел чтобы слепить себе рабочее окружение.

Мы выживали, как могли…

Trunk
() автор топика
Ответ на: комментарий от anonymous

гейки

Ты опечатался, или пытаешься скатить в гомосрач?

Trunk
() автор топика
Ответ на: комментарий от Lzzz

Главное этой «девочке» не проколоть колесо где-нибудь между мухосранском и малыми бубенями. Вот тогда она будет рада, что поменяла балонник с домкратом на номер шиномонтажки с модным кофейным аппаратом.

mogwai ★★★★
()
Ответ на: комментарий от Miguel

Примерно поэтому, например, придумали

Не поэтому. Оно не защищает приложение от доступа с хоста. А хосте может что угодно крутиться.

Если недоверие в другую сторону - есть cgroups и KVM.

Ну, вообще неплохо, не?

Конечно. У заказчика сервер под управлением Debian, на котором, кроме всего прочего, крутятся окружения SLES, RHEL и Ubuntu, потому что у него там есть 3 софтины от трёх разных разработчиков. И тут мы узнаём об очередной CVE в каком-нибудь OpenSSL, который используется в каждой софтине. Не просто неплохо, идеально, я бы сказал.

mogwai ★★★★
()
Ответ на: комментарий от anonymous

чем они лучше скрипта с логикой, обеспечивающей эти самые версии

Поддержу: ничего не мешает .sh положить в git и брать нужную версию в нужный момент. Докер файл нужно там, где «не умеем ни в ансиблю\паппет, ни в шэлскрипт», но тогда и образ будет не «свой», а с докерхаба. И выходит,

…что контейнер это устроенная непонятно кем свалка непонятно чего, которая вроде бы дает воспроизводимое и описываемое окружение сейчас, но без каких либо гарантий в будущем.

FTFY

mogwai ★★★★
()

Ещё для веб-разработчиков подходит в качестве литера на 12 факторов. До сих пор в 2020 встречаю веб-разработчиков, у которых есть только прод, обновляемый вручную, и локальная дев-среда совершенно не подхожая на прод. Всё интеграции только на проде.

Правда, что такие разработчики сделают с докером - даже представлять не хочется.

anonymous
()
Ответ на: комментарий от sparkie

Все мы когда-то умрём.

Суть не в этом, суть в том, что их профдеформация приняла какие-то извращенные формы =)

Twissel ★★★★★
()
Ответ на: комментарий от anonymous

Тебе и на шелл смотреть лень.

И далее по тексту

Скорее мне лень тебя переубеждать в нужности сабжа. Не нравится не пользуйся никто не заставляет. Любая стандартизация пусть даже де-факто это благо, нет нужды разбираться с системой развертывания «не такой как все» очередного левши. Что самое смешное что вся твоя не такая «какугугла» система прекрасно оборачивается в контейнер, собственно для этого оно и сделано чтобы ты собирал как там тебе нравится, а потом нормальные люди могли это обернуть как надо и разворачивать без плясок быстро и продуктивно.

anonymous
()
Ответ на: комментарий от byko3y

Не бухти бибизян, вам с анонимом все равно уже не остановить прогресс. У любого ПО бывают косяки, если бы их не фиксили ты бы мог бухтеть, а так что воздух сотрясать, еще скажи что ты никогда не косячил.

anonymous
()
Ответ на: комментарий от anonymous

У друга Нива, кстати. Терпит официалов из-за гарантии. Закончится и адью.

Частный автослесарь ценится не только из-за нестандартных операций. Ты идёшь в сервис полюбас со своей деталью. Гарантийное авто отличается от негарантийного тем, что неисправную деталь могут заменить по гарантии. И всё. Частный легальный автослесарь точно также будет выполнять операции по ремонтной карте, что и в дорогом сервисе. Дорогой автосервис удел гламурных дамочек, либо если руки совсем из задницы.

anonymous
()
Ответ на: комментарий от sparkie

Главное, пальчики вовремя отдёрнуть. А то можно без рук остаться.

Предлагаю забить.

anonymous
()
Ответ на: комментарий от byko3y

Ты друг мой какой-то обсаженный малость, статическая линковка кококо, но ведь множество ит решений не состоит только из статически слинкованых блобов, перестань думать категориями зари развития ит. Все что ты говоришь имеет место быть, но нормальным людям нужен нормальный способ для поставки и развертывания и он должен быть одинаков для любой целевой системы. Никто тебе и таким как ты не запрещает использовать свои наколенные аналоги, но индустрия в целом хочет какой-то дефолтный инструмент с хорошим масштабированием без боли в заднем проходе.

anonymous
()
Ответ на: комментарий от WitcherGeralt

да сохраняешь прямо в репозитории

И таки будет работать? У меня оно в консоли писало что-то про путь. В общем, с репой не взлетело.

anonymous
()
Ответ на: комментарий от anonymous

индустрия в целом хочет какой-то дефолтный инструмент с хорошим масштабированием без боли

Не получаются пока реализации хотелок. Приходится таскать за собой кучу флешек с разными инструментами.

anonymous
()
Ответ на: комментарий от Twissel

+1

У меня есть инструмент на втором ядре. И я ж не один по ходу дела.

anonymous
()
Ответ на: комментарий от intelfx

Кстати, в случае статической линковки правильно собранный докер-образ вырождается в один слой из одного файла.

Что, собственно, резко уничтожает смысл докера.

С тем лишь отличием, что докер — это готовый тулинг и инфраструктура вокруг него

Инфраструктура майнеров в докерхабе, ага.

и обращаться с докер-образом банально проще и удобнее, чем с голым файлом

Пока человек берёт васяносборки и не пытается сделать шаг влево/вправо.

anonymous
()
Ответ на: комментарий от Siborgium

А если нужен не тупо линукс, а конкретная версия конкретного дистрибутива?

Тогда, учитывая версию ядра, только виртуалочка.

и такие прослойки можно оркестрировать простыми скриптами.

Портянка на YAML и Куцый dockerfile — не скрипты.

А еще докер позволяет делать снапшот состояния.

Что делает его оправданным в любой ситуации?

anonymous
()
Ответ на: комментарий от anonymous

Что, собственно, резко уничтожает смысл докера.

Нет.

Инфраструктура майнеров в докерхабе, ага.

Ты из тех, кто говорит «система контроля версий гитхаб», да?

Пока человек берёт васяносборки и не пытается сделать шаг влево/вправо.

4.2

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от byko3y

который позволяет запускать твой код на любой ОС при условии, что эта ОС — линукс

А ничего, что мак с виндой официально поддерживаются? И пофиг, что виртуализация, всё равно это от глаз скрыто.

Проблема с переносом бинарника между линуксами никогда не являлась проблемой

Пока этот бинарник печатал «hello, world», а дальше уже интереснее. Не говоря уж о языках, которым нужна вм и где ты статически собрать ничего не сможешь.

бездарные макаки, которые делают зависимость от мажорных

Чего? Ты не можешь не привязываться к версиям вообще.

пакетные менеджеры еще способны поставить рядом девятый и десятый постгрес

Схрена у тебя постгрес вообще на тачку с приложением встаёт? Вот это действительно рукожопие.

WitcherGeralt ★★
()
Ответ на: комментарий от byko3y

Пусть вмварь ставит или чего там в винде принято. Нашел проблему. Докер и без этого поддерживает винду, но то годится только для нужд разработки, наверное.

Я бы с таким заказчиком вообще не связывался.

WitcherGeralt ★★
()
Ответ на: комментарий от mogwai

Кто скорее узнает, разраб или заказчик? И что разраб будет делать? Рассылать всем заказчикам слёзные просьбы обновить свою систему?

Miguel ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Он про то, что сам демон работает под онтопиком, но все это решаемо и портируемо, скорее просто никому не нужно. Зачем запускать докер под оффтопиком вообще какие у этого могут быть преимущества? Вопрос риторический.

anonymous
()
Ответ на: комментарий от anonymous

Во-первых, на винфак.

Во-вторых, когда покажешь нативный и кроссплатформенный докер на винде, а не виртуалку.

В-третьих, тебе ясно сказали, под что этот рецепт. Отмазки вида «вдокеревсёуниверсально» не принимаются, потому что докер, как бы тебе этого не хотелось — не пакетный менеджер.

А так-то оно может вполне запуститься и на винде с незначительными изменениями. Так уж вышло, что софт на винде иногда собирают либо в msys, либо в cygwin, в коих из них всё это есть, с чем оверхеда будет явно меньше. Ещё меньше оверхеда будет, если ты выучишь помершелл (но в этом случае всё равно git поставляется с нелюбимым башиком).

anonymous
()
Ответ на: комментарий от WitcherGeralt

Это тоже решается банальными патчами в проект или его форком. Но конечно проще бегать по форумам и проповедовать учения староверов.

anonymous
()
Ответ на: комментарий от anonymous

Для разработки же. Миллионы разрабов пишут под линукс сидя под маком или виндой. Это по-моему контритуитивно, но это так.

WitcherGeralt ★★
()
Ответ на: комментарий от anonymous

Вопрос: вот типовая задача, элементарно решаемая с помощью докера. Как решить её без него.

Ответ: мы навелосипедим свой полудокер!

Вопрос: допустим. А выгода-то в чём?

Ответ: длинный спич, про то, что всё не нужно.

Милейший, вы зарапортовались. Мне (никому) не нужны философские тирады, нужен стандартный способ запускать максимально эквивалентные окружения на одном сервере.

Так хардкод на двадцати недосервисах

О чём вы вообще? Перестаньте уже говорить намёками, как барышня, и скажите прямо о какой проблеме вы говорите.

ugoday ★★★★★
()
Ответ на: комментарий от intelfx

преимущества

Не таскать стопку одинаковых по сути, но разных образов по гигабайту каждый? Не иметь сотню копий по сути одной либы в памяти? Иметь контроль над окружением, а не полагаться на магическую как-бы-виртуалку и магического васяна, которые нас всех спасут? Иметь по-настоящему кроссдистрибутивный код, а не помойку на тонне гвоздей, завязанную только на очень старую или очень новую версию библиотеки с предстоящим адом разгребания накопившегося технического долга/переписывания всего заново?

anonymous
()
Ответ на: комментарий от anonymous

Я тот анонимус.

Во-первых, на винфак.

либо в msys, либо в cygwin

Нет, ты. Я свой софт могу разрабатывать хоть на домашнем компе, хоть на рабочем под оффтопиком, нафига мне твои извращения?

когда покажешь нативный и кроссплатформенный докер на винде, а не виртуалку.

Нет, мне не на кроссплатформенность дрочить, а удобный запуск нужен.

Отмазки вида «вдокеревсёуниверсально» не принимаются, потому что

… ты не сможешь придумать контраргументов.

Более того, я в докера-контейнерах запускаю и виндовый софт, который коряво написан и не предполагает запуска нескольких экземпляров. А пишутся докерфайлы единообразно и для винды, и для линукса.

Давай, сочиняй мне зоопарк «удобных» инструментов на баш-скриптах и питонах.

winlook38 ★★
()
Ответ на: комментарий от anonymous

Так уж вышло, что софт на винде иногда собирают либо в msys, либо в cygwin, в коих из них всё это есть, с чем оверхеда будет явно меньше. Ещё меньше оверхеда будет, если ты выучишь помершелл

Этого ещё хватало. Если каким-то ушлёпкам понадобится запустить проект под оффтопиком, то это их проблемы. А в случае с докером эти проблемы не то чтобы даже прослеживаются, возьмут да запустят.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от byko3y

Статическая линковка реализует первые две тезиса с тем лишь изменением, что для разных языков нужны разные инструменты — это не такой уж и чудовищный недостаток.

А по-моему, недостаток. Количество времени ограничено и чем разбираться в 25 различных способах сделать одно и то же, я выберу одно типовое решение. Кроме того, статическая сборка не для всех языков в принципе возможна.

Вторые два тезиса решаются при помощи добавления одного флага запуска этого самого бинарника и примитивного chroot-а.

  • ещё немножко правил iptables добавить (следить, чтобы запускалки не портили правила друг-друга) и какой-нибудь демон перезапускать упавшие сервисы, но это уже совсем просто. Про слоёную файловую систему я не говорю, это уже эстетство.
ugoday ★★★★★
()

Я вижу в докере форму документирования процесса сборки. Написать правильную инструкцию по сборке чего-либо - это задача весьма непростая, потому что процесс сборки с нуля обычно долгий. Явного писания зависимостей нет, обязательно окажется, что какая-то зависимость не упомянута. Дальше идёт отладка, которая занимает большое время. В этой ситуации докер позволяет с относительным удобством написать скрипт развёртывания, а потом этот скрипт можно выложить на гитхаб. Дальше кому надо - тот читает этот скрипт и повторяет действия руками.

Минус состоит в том, что некоторые вещи в докере не работают, и их либо выкидывают, либо пишут уже текстом, в этот момент абстракция протекает.

Ну и есть ещё один минус, с которым я до конца не разобрался. Докер - это не виртуальная машина (C), поэтому есть вопрос совместимости между гостевой и целевой системой. Я даже видел таблицу совместимости. Я думаю, что через несколько лет этот вопрос будет актуален во весь рост, когда окажется, что старые докерфайлы на новых системах не разворачиваются.

den73 ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Я тот ушлепок. Нет никаких проблем.

Я запарился не питонисатм объяснять как просто запустить скрипт под виндой. Это установи, в консоли это введи, вот так прокси настрой, а потом ты каждый раз можешь просто активировать venv и в нем запускать скрипт, но можно просто записать это все в cmd.

Вчера в докер завернул все - одна команда для неподготовленного человека. И ее тоже можно засунуть в cmd.

winlook38 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.