LINUX.ORG.RU

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

 ,


3

3

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

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

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

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


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

А вот тут можно и нужно спорить. Если у вас один раз RUN npm install leftpad сработал, то не факт, что он ещё раз когда-нибудь сработает. Так что собранный образ нужно положить в частный реестр и хранить (вечно).

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

Если тебе инструмент для чего-то не подходит, не используй его для этого. При чем здесь задачи, для которых инструмент подходит?

Ну так бы и писал «я — фанбой докера, мне он нравится» и «кто не пользуется докером — тот лох», у меня бы не было тогда вопросов.

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

FROM ubuntu...

Ошибка №1: по best practices должно быть FROM openjdk...

в системе будут присутствовать одни и те же сущности

Ошибка №2: у тебя в образе, кроме opendjk ещё много чего «установлено».

#!/usr/bin/env sh

Ошибка 3: сравнивать докерфайл нужно не с шеллскриптом, а с плейбуками или манифестами.

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

Ошибка №1: по best practices

Я дал вам небольшую фору.

Ошибка №2: у тебя в образе, кроме opendjk ещё много чего «установлено».

У вас в убунте (или что вы там используете) этого «много чего» будет установлено ещё больше.

Ошибка 3: сравнивать докерфайл нужно не с шеллскриптом, а с плейбуками или манифестами.

Абсолютно неважно. Обсуждается вопрос: делает ли установка openjdk через образ его более «чёрным ящиком» нежели при установке посредством дебиановских пакетов. Со всей очевидностью, нет.

К слову, я прямо сейчас участвую в переводе средних размеров конторы с puppet+apache+tomcat на кубернетес. Потому что у воспеваемых тут инструментов есть некоторые незначительные недостатки. А есть ли примеры обратного перехода? Куберу уже 6 лет, ажиотажу вокруг него года 3, вполне достаточно, чтобы для образования презираемого всеми «легаси», наследия с которого все бы хотели свалить.

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

Я дал вам небольшую фору.

Ляпнул фигню ты, не подумав, а не «фору дал». И дальше вместо аргументов шельмуешь и шлангуешь. Чем подход blackbox администрирования от whitebox отличается сам погуглишь. Сделаешь выводы, может, поумнеешь.

я прямо сейчас участвую в переводе средних размеров конторы с puppet+apache+tomcat на кубернетес

Ну, дай Патрег этой конторе не выйти за рамки типовых проблем, которые чорнокоробочники умеют решать.

Куберу уже 6 лет, ажиотажу вокруг него года 3, вполне достаточно,

Гомосеки последние лет 10 активно навязывают свои идеи и мировое сообщество что-то не сильно сопротивляется. И что, это показатель?

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

Надеюсь, от меня не ожидают, что я буду всерьёз оппонировать человеку, избегающему докера, дабы оградить от беды свою гетеросексуальность. Да и зачем тут спорить? Удачи, милейший, вам и вашему заду.

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

Что вы о моём заде заговорили? Вы за своим следите, ну. И да, вы где связь между докером и гомосятиной нашли? Есть печальный опыт перевода какой-то организации на докер?

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

Под виндовс тоже будешь crosstool-ng юзать?
Не надо устанавливать мусор в систему.
Не надо настраивать каждое окружение заново.

Ты сейчас, как и некоторые сидящие здесь, придумываешь решение проблемы, которой никогда не было. У винды есть бинарная совместимость на уровне клиентских либ насквозь до win 3.1. По поводу сборки прежже всего хотелось бы отметить, что есть как минимум MSVC, ICC, и Mingw, которые довольно сильно отличаются, и без явной поддержки сорцами ты на другом компиляторе софтину больше «hello world» не соберешь. Также не стоит забывать, что из общепринятого скриптового языка там только BAT, который очень убогий.

byko3y ()

Интересная тема, жаль я ее раньше не заметил а читать сколько странц вряд ли осилю :(

Контейнеры и (как там в теме : таскаешь его с собой между системами в виде архива.) эти штуки не разработчика а деплоя.

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

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

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

Почитай что такое docker, потом поговорим. Без конкретных кейсов говорить не о чем.

Также не стоит забывать, что из общепринятого скриптового языка там только BAT

Во-первых это чушь, во-вторых к вопросу контейнеризации это не относится.

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

Как раз поколение Z не умеет пользоваться этими вашими доскерами, поскольку не понимает, зачем оно нужно и как оно работает, но при этом отчаянно пытается делать вид, что умеет. И ради этого в т.ч. тащит его туда, где его использование вредно. Точно так же, например, некоторые, гм, уникумы пользуются Git’ом не по назначению.

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

Upd: если быть точным, проблема не в поколении Z. У предыдущих поколений могут быть точно те же проблемы, или проблемы похуже, например когда в контейнер впихивают service manager и пытаются заменить им виртуалку. На поколение Z тут можно жаловаться разве что потому, что в этом поколении больше новичков, ещё не получивших опыта и делающих ошибки, но это естественно, т.к. они младше. Их ошибки ничем не будут отличаться от ошибок тех представителей поколений X и Y, которые не имеют нужного опыта.

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

Ставлю все контейнеры от васянов из паблика. Разворачиваю в секунды то, на что старые бородатые затроты тратят часы. Лузеры ниасиляторы! Правда ресурсоемко конечно. Приходится в облаках мощности докупать. Зато все фичи без тестов сразу на бою! Докер - это революция. Старперов на пэнсию!

anonymous ()

Docker - это же DSL для построения подобных тулчейнов.

Активное использование DSL’ей - то что отличается программистов от недолюдей.

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

Всё есть дсл, ага. Лишпер?

Дай угадаю, ты из тех, кто Makefile’ы на bash переписывает? Использование DSL - не особенность лисперов, а особенность тех, кто умеет программировать и думать при этом. Хотя да, среди лисперов процент подобных зашкаливает.

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

Дай угадаю, ты из тех, кто Makefile’ы на bash переписывает?

Мимо, я голого make руками не касаюсь, ибо только для хэлвордов годно. Опровергай, если есть чем

Использование DSL - не особенность лисперов, а особенность тех, кто умеет программировать и думать при этом. Хотя да, среди лисперов процент подобных зашкаливает.

Процент потребления борща там зашкаливает, лол. А вообще - ты ничего не сказал, кроме «ты просто ниосилил»/«кто думает - тот использует дсл»/whatever. Раскрой тему, опиши причины

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

Мимо, я голого make руками не касаюсь, ибо только для хэлвордов годно. Опровергай, если есть чем

It was just a guess. Слишком зашкаливающее количество bash-портянщиков заполонило тред, рискнул предположить.

ибо только для хэлвордов годно.

Согласен.

«кто думает - тот использует дсл»/whatever. Раскрой тему, опиши причины

Ух, это же целую лекцию тогда начинать надо.

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

да если сводить все к паре тезисов - то всё ж тривиально будет. high level / low level.

лучше написать короткий и выразительный высокоуровневый DSL в Dockerfile, который затем для тебя синтерпретирует докер и сделает всё что нужно, нежели городить тысячи строк на bash-ассемблере.

ну если уж такой упоротый - напиши компилятор с докера в баш-скрипты. для нормального программиста это дело на пол дня. и индастри-стандард DSL цел с высококачественным и оттестированным софтом и свой локальный костыль для забавы поднят.

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

кстати, вот ты будешь ржать, да и вообще тестовые таски при хайринге сейчас стало не можно просить сделать, но ведь это же sounds like a good idea.

напиши простой компилятор с Dockerfile в bash портянку для наиболее распространенных сценариев использования и деплоя. и сразу видно, кто перед тобой

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

По самой концепции возражений как бы нет, даже больше скажу - это не только к «language» применимо, к любому специализированному инструменту под задачу. Только вот расходы зачастую больше профита:

  • если нет чего-то готового - нужно самому сделать
  • если готовое есть - оно с большой вероятностью не слишком хорошо подойдёт, ибо тот самый «domain specific» чуть ли не уникален для каждого проекта
  • допустим сделали сами/подпилили что-то готовое - теперь это нужно сопровождать(я даже не про ошибки различные, нужно документацию приличную, чтоб этим кто-то пользовался и пользовался правильно)

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

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

Вчера вам было нужно пересоздать сервер, однако паппет не сумел этого сделать. Сможете догадаться почему?

Вот у меня некая конструкция в LaTeX перестала отображать то, что она раньше отображала. Ха, ха, «сможете догадаться почему»?

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

Docker - это же DSL для построения подобных тулчейнов.

У докера есть, конечно, свой предметно-ориентированный язык. Но это лишь часть всей инфраструктуры, причём не очень ясно, насколько значительная.

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

Шелл-то с тулчейнами справляется, а действительно годный DSL — это идти в Guix

По сути Guix — очереднгая и не особо успешная попытка заменить куцый баш на что-то более функциональное, в прямом и переносном смысле. Питон был одной из первой попыток, но эта попытка провалилась, выродившись в язычок для средних по сложности системных скриптов и веб-сайтов/служб с малой нагрузкой.

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

Михаил, может пора перестать употреблять такие вещества?

Не знаю, кто такой михаил. Есть что по существу возразить, или как? Башеговно для чего нужно? Для служб, задач по крону, конфигурацию автоматизировать, бэкапы там, монтирование. Все эти задачи выполняет Guix, и именно поэтому не имеет успеха — потому что пациенты либо ретрограды вроде Торвальдса, которые до сих пор в 2040 году пишут на баше и Си, либо школьники с докером, у которых весь скил админства сводится к знанию команд для установки сборок от васяна и решению проблем при помощи stackoverflow.

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

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

лучше написать короткий и выразительный высокоуровневый DSL в Dockerfile, который затем для тебя синтерпретирует докер и сделает всё что нужно, нежели городить тысячи строк на bash-ассемблере.

Сразу видно, что на лиспе ты не писал.

индастри-стандард

И что чужой код го-обезьянок для тебя — это чёрный ящик, который не ломается™

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

и оркестрацию

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

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

Когда поменять строчку средствами yaml-программиста станет быстрее, чем вызвать awk с буфером или обернуть его в перенаправления, тогда и приходите

Поясни. На мой взгляд это задачи одинаковой сложности.

byko3y ()