LINUX.ORG.RU

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

 ,


3

3

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

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

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

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


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

FTFY

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

использование докера в проде - зло ансаблем большинство задач решается

Используем и докер, и ансибл. Те, кто противопоставляет эти инструменты, используют их неправильно.

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

А на самом деле, строчка FROM image:tag гарантирует, что сборка образа начинается всегда со строго определённого места. Что до RUN apt ..., то:

  1. Это проблема существует и для всего остального тоже.

  2. Она проявляет себя только на этапе сборки образа, а не на этапе исполнения Pupppet/Ansible/самокатный-скрипт etc, что значительно упрощает жизнь.

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

Твоя позиция про докер понятна. Но аргументация так себе. Гораздо проще сказать «докер не должен вылезать за пределы машин разрабов потому что мне это не нравится». По крайней мере это было бы твоими субъективными ощущениями, которые не принято оспаривать.

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

Шо там ямл-программисты, шо там ямл-программисты.

Это то же самое, что сказать «шо там анонимус, шо там анонимус», но при этом ты, например, дурачок, а я нет

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

А на самом деле, строчка FROM image:tag гарантирует, что сборка образа начинается всегда со строго определённого места.

Ни разу не определённого. Один и тот же тег в разные моменты времени может указывать на совершенно разные образы.

Это проблема существует и для всего остального тоже.

Тут в треде уже пятнадцать раз Nix упомянули, в коем такой проблемы не существует.

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

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

Пардон, делает что? Полученный огрызок не имеет доступа к целой куче API системы, взять то же CredRead/CredWrite, которое вполне себе кроссплатформенно обернуто в python-keyring, и без настройки под конкретную систему не может сохранять файлы между запусками или просто читать локальные файлы. С таким же успехом можно «запускать» вебстраничку на JS в браузере. Если софтина не имеет отношения к локальной системе, то с таким же успехом ее можно запускать по SSH на серваке — зачем нужен докер вообще?

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

Докер за пределами тачки (или кластера отданного на игрища разрабам) разработчика - фу

Честно говоря, я до сих пор не понял твоей аргументации конкретно против докера. Ну, например, что насчет rkt, lxc, containerd?

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

Ну, например, что насчет rkt, lxc, containerd? Ничего.

@Vit (ответ обоим): Докер пропагандируют какой сценарий?

Docker development best practices


Start with an appropriate base image. For instance, if you need a JDK, consider basing your image on the official openjdk image, rather than starting with a generic ubuntu image and installing openjdk as part of the Dockerfile.

If you have multiple images with a lot in common, consider creating your own base image with the shared components, and basing your unique images on that. Docker only needs to load the common layers once, and they are cached. This means that your derivative images use memory on the Docker host more efficiently and load more quickly.

https://docs.docker.com/develop/dev-best-practices/

Бери готовый образ с докерхаба и только если у тебя в базовой системе сильно много отличий от дефолта - собери свой.

Как можно советовать инструмент, у которого в лучших практиках написано «возьми чёрный ящик и сделай инфраструктуру зависимой от него»?

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

Как можно советовать инструмент, у которого в лучших практиках написано «возьми чёрный ящик и сделай инфраструктуру зависимой от него»?

А разве это не суть всего прода?

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

зачем нужен докер вообще?

Чтобы решать проблемы, отличные от твоих маняпроблем.

Ты попытался объяснить, что никакая автоматизация не имеет смысла и, очевидно, не смог.

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

Один и тот же тег в разные моменты времени может указывать на совершенно разные образы.

Если вы так сделали, значит вы сделали это нарочно.

Тут в треде уже пятнадцать раз Nix упомянули,

Очень рад за него.

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

Кто-то просто читать не умеет. Тут написано, что полезно делать имиджи так, чтобы был некий общий имидж, и остальные уже используют его, и это экономит место. Так же нет смысла городить свое, если кто-то это уже сделал. Нигде не написано, что не надо проверять или не надо собирать из докерфайла. Просто корневые имиджи ОС приходится собирать руками и это начало цепочки доверия. Если важно, нужно проводить аудит корневых имиджей, и все остальное собирать из докерфайла. А если нам просто CI или просто собирать что-то, требующее странного окружения, то можно просто пользоваться и не страдать.

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

возьми чёрный ящик

А чем docker образ openjdk:11.0.7-jdk более чёрный ящик, чем deb пакет openjdk-11-jdk?

и сделай инфраструктуру зависимой от него

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

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

В приличных компаниях образы сохраняют в частном реестре Что делать будешь при обнаружении очередной CVE в ПО имеющемся в образе?

А чем docker образ openjdk:11.0.7-jdk более чёрный ящик, чем deb пакет openjdk-11-jdk?

Тем, что в пакете openjdk кроме openjdk ничего нет.

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

Не можешь сам перевести без вольностей и перевираний, заплати кому-нибудь, кто умеет.

Тут написано, что

бери образ JDK из хаба, а не бери убунту и не городи к нему установку JDK. Ты должен верить не только мейтейнерам убунты, но и всей цепочке на которой основан образ JDK.

Так же нет смысла городить свое,

Если тебе подходит то, что лежит в хабе. Так же, там

Нигде не написано, что надо проверять или надо собирать из докерфайла

Потому что «лучшая практика» - брать официальный образ, например, JDK из докерхаба.

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

Чтобы решать проблемы, отличные от твоих маняпроблем
Ты попытался объяснить, что никакая автоматизация не имеет смысла и, очевидно, не смог

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

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

Ты должен верить не только мейтейнерам убунты, но и всей цепочке на которой основан образ JDK

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

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

всем сборщикам базовых пакетов дебиана.

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

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

При установке Fedora - всем мейтейнерам федоры, ага; при установке Windows - довериться Microsoft.

А вот устанавливая Windows 10 zVeR eDiTiOn тебе приходится доверять и этому «zVeR», который тебе образ приготовил, и ещё неопределённому кругу лиц, чьё ПО он в эту сборку напихал поверх оригинального образа от Microsoft.

PS Прошу прощения за аналогию с оффтопом. Можно было бы привести в пример какой-нибудь болгенос, но он мёртв, а живых «сборок» убунты от Васяна сходу не вспомнил.

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

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

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

Что же ты не отвечаешь за чушь по поводу автоматизации? Неудобно?

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

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

Т.е. вместо одного минимального образа у нас много разных deb-пакетов, в которых находится всё то же самое, что и в образе + разное. Это конечно же всё меняет (нет).

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

Что, десяточку нынче не собирают? Все оригинальные образы стали использовать? У меня просто со времён Windows 7 оффтопик только лицензионный, поэтому не в курсе чего там по сборкам.

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

В минимальном образе всё-равно те же самые пакеты лежат + ещё неизвестно что. А в образе который ты сам собрал лежат только те «пакеты», которые ты туда положил.

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

Проблема в том, что это не паранойя, судя по ссылкам на майнеры с миллионами загрузок выше в треде и ADD rootfs / вместо «повторяемого» докерфайла с нулевой ответственностью васяна за докерфайл.

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

Всё ещё не понимаю почему

FROM ubuntu:20.04

RUN apt install openjdk

Это ужос-ужос-ужос-ящик-чорного-властелина, а

#!/usr/bin/env sh

sudo apt install openjdk

это ок-норм.

В конце-концов у вас в системе будут присутствовать одни и те же сущности (ни одну из которых вы не контролируете).

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

скриптушные сборщики чрут-образов

«Оригинальная конструкция, заря автомобилизма. Видите, Балаганов, что можно сделать из простой швейной машины Зингера? Небольшое приспособление — и получилась прелестная колхозная сноповязалка.»

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

Всё ещё не понимаю почему

Потому что на ADD rootfs / ты прикинулся шлангом и закрывал глаза аж три раза, васянолюбие не выкорчевать.

Попытаюсь разжевать. Вот есть проект Debian. Есть редхат. Есть альтлинукс. Во всех трёх проектах есть ответственность мейнтейнера и прочие сдержки с противовесами, сделанные для того, чтобы васян не пролезал. В некоторых пользовательских репозиториях хозяин репозитория делает ревью скрипта перед добавлением. Есть ответственность хотя бы в виде того, что мейнтейнер получает минимум пинок ногой.

У васянов с докерхаба же никакой ответственности нет, о чём нам как бы говорят многолетние затрояненные образы с миллионами загрузок и образа с ADD rootfs /.

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

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

Самое интересное, что докерасты в упор не слышали про те же скриптушные сборщики чрут-образов, только тсссс…

Хотел написать, что самое интересное - почему онанимусы такие олигофрены, но нет. Это не интересное.

Но вот в соседнем треде Есть бесплатный дереверб под Linux? ТС жалуется, что у него под убунтой что-то не собирается. На то, чтобы запустить образ убунты, который я обычно использую в проде для сборки всего на свете, склонировать его тулзу, понять в чем проблема, собрать и написать ответ у меня ушло минут 6-8. Всё это, разумеется, на маке, ибо я на хую вертел все эти ваши десктопные линуксы.

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

project ()

Не докер образ нахерачить и таскать с собой, а Dockerfile. И предсказуемо собирать образ где угодно без необходимости таскать его с собой.

UPD: Простите, не заметил 18 страниц срачика.

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

Всё это, разумеется, на маке, ибо я на хую вертел все эти ваши десктопные линуксы.

Поздравляю! Вы (похоже что) смогли запустить Специальную Олимпиаду внутри Специальной Олимпиады.

Gentooshnik ★★★ ()