НЕ КОМПИЛИРУЙ в Docker пока не посмотришь. Рельные ошибки при сборке Docker

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ต.ค. 2024
  • Скачать PVS-Studio: www.viva64.com...
    Промокод: #mir_it
    VK PVS-Studio: pvsstud...
    TH-cam: ‪@PVSStudioTool‬
    Dockerfile на первый взглят простой инструмент для создания Docker image, но если совершать ошибки, о которых я расскажу в видео, то ваш Докер образ может раздуться до невероятных размеров. Особенно когда в твоем Докер файле есть компиляция программы. Например если подготавливать/компилировать в dockerfile java, с, с++, golang приложения и оставлять весь мусор после сборки мы порадим увесестый контейнер.
    #docker #ityoutubers #devops
    Дополнительные видео по теме:
    Web-сайт для ленивых: docker-compose, nginx, php-fpm, mysql - • Веб-сервер на реальном...
    Про моего телеграм бота на голанге - • Написал телеграм бота ...
    Подробнее о Dockerfile - • Docker основные команд...
    ХОТИТЕ ПОМОЧЬ РАЗВИТИЮ КАНАЛА?
    ★ BITCOIN: 3DkeRMFu4jsZCvRj8Bxn8iQCkgxfeVaxg8
    ★ Boosty (подписка донаты) boosty.to/pavl...
    ★ Яндекс.Деньги: money.yandex.r...
    ★ www.donational...
    ★ www.tinkoff.ru...
    КОНТАКТЫ:
    ✦ Канал в TELEGRAM: t.me/worlditech (worlditech)
    ✦ Чат в TELEGRAM: t.me/linux_wit
    ✦ Группа в VK: worlditech
    ✦ INSTAGRAM: / pavlenko.at
    ✦ DISCORD: / discord
    Еще контакты:
    ✧ t.me/pavlenko_at
    atpavlenko
    ✧ / anton.pavlenko.94

ความคิดเห็น • 209

  • @pavlenkoat
    @pavlenkoat  3 ปีที่แล้ว +7

    Сделал ошибку в видео про ошибку. Кто найдет?

    • @xXanMarkx
      @xXanMarkx 3 ปีที่แล้ว +1

      APP_PATH=APP_NAME

    • @ПихалМетрович-ф3э
      @ПихалМетрович-ф3э 3 ปีที่แล้ว

      На ошибках учатся

    • @sashatoaster
      @sashatoaster 3 ปีที่แล้ว

      clear

    • @БратецТук-о2л
      @БратецТук-о2л 3 ปีที่แล้ว

      Легко - словарь русского языка ,слово породить пишется через нуль :))

    • @andreil174
      @andreil174 3 ปีที่แล้ว

      В строке 11 говорится, что копируется в корень, но путь не абсолютный, а относительный. А в CMD путь абсолютный. И может так сложиться, что пути разойдутся.

  • @АндрейЗубков-ж2б
    @АндрейЗубков-ж2б 3 ปีที่แล้ว +16

    коментарий в поддержку видео

  • @rafikrushanian
    @rafikrushanian 3 ปีที่แล้ว +3

    Always happy to help - the like and the comment already done ))

  • @Petyaumniy
    @Petyaumniy 3 ปีที่แล้ว +3

    На мой взгляд чрезмерное злоупотребление писаниной всего что только можно в 1 RUN строчку это скорее показатель ньюфажества. Этакая преждевременная оптимизация в сфере операций.
    Вопервых слои ничего не стоят (ни в памяти, ни в диске), до тех пор пока 2 соседних слоя не изменяют общие файлы.
    Вовторых можно запросто встретить такую картину, когда кто-то (чего уж, сам на этим кто-то бывал) собирает тяжеловестный контейнер - окружение для сборки чегонибудь (изи может весить >500 мегабайт) Ой я забыл поставить "git"... А потом: я же умный, мне расказали как "все в 1 слой" позволяет экономить несуществующие сущности... фигак его в этот единственый слой! И вот в регистри у нас лежит не 1, а 2 образа по 500 мегабайт. И так можно мелкими правками делать по +500 Мбайт каждую итерацию, и засрать его полностью. И уже не каким-то выдуманным оверхедом, а реально.
    То что автор говорит про: много слоев сложнее чистить - это не соотвествует действительности. Вы будете одинаково чистить и много и "мало" слоев. Не вижу ни одного юзер кейса, когда кто-то будет руками разбираться с тем что это за слой. То что их 1000 вместо 10000, никому проще не сделает, одинаково недоступное для разбирательств количество.
    Есть более сложные случаи:
    - Например многие не знаю что нельзя делать RUN chown на файлы которые вы скопировали - это увеличивает размер файлов в 2 раза. Надо делать COPY --chown.
    - Можно запросто обосраться при использовании --build-arg которые пойдут по кешу с другим значением, а с учетом что аргументом может быть имя образа, то на выходе можно получить не просто количественно чего-то отличающееся, а качественно что-то другое.

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      О том что много слоев сложнее чистить я не говорил. Я говорил о том что вечно очищать забывают. Сложнее понять что где и зачем, чтобы устроить проблеммы для начинающих это сложно.

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

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

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      chown никогда не приходилось делать так как один контейнер одна программа. Но что в 2 раза больше это логично.

  • @TheMonigoral
    @TheMonigoral 3 ปีที่แล้ว +5

    Docker BuildKit бы ещё сюда. Там нормальный workaround по секретам. Да и с большим количеством stageй в multistage дела обстоят лучше. В классике, собираются все stages до нужного, даже если они не нужны. С BuildKit не так. Отличное видео, спасибо

  • @coopergoldchrest7768
    @coopergoldchrest7768 3 ปีที่แล้ว +3

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

  • @vpnsslru
    @vpnsslru 3 ปีที่แล้ว +2

    Антон, ты бы добавил ссылку на dockerfile в описание, народ бы кликал, ютуб воспринял бы благосклонно.

  • @NikolayIvanovichLinux
    @NikolayIvanovichLinux 3 ปีที่แล้ว +2

    !

  • @caffeinejavacode1475
    @caffeinejavacode1475 3 ปีที่แล้ว +3

    комент для продвижения

  • @роматарасов-о8л
    @роматарасов-о8л 3 ปีที่แล้ว +2

    Здравствуйте, я маленький и глупенький фулстек-жаваскриптизёр, узнавший о докере 2 недели назад.
    Сейчас пробую засунуть сайт в docker-compose (хочу чтобы был docker-compose для дева и для прода 2 файлами)
    Конкретно сегодня мучаюсь с дев контейнером для реакта(чтобы я писал код а приложение автоматически менялось) с продом всё круто (раздаётся через nginx)

  • @АнтонКраснов-ж7н
    @АнтонКраснов-ж7н 3 ปีที่แล้ว +4

    В поддержку

  • @finalistx
    @finalistx 3 ปีที่แล้ว +2

    привет, если ты собрал go.mod то тебе не нужно делать go get перед компиляцией, двойная работа получается

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Хм. Он при компиляции скачает?

    • @finalistx
      @finalistx 3 ปีที่แล้ว

      @@pavlenkoat да, для того и сделаны go modules, чтоб не делать go get

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      @@finalistx Не знал я просто с разрабом консультировался. Он вот так сказал. Спасибо большое.

  • @user-ml2rb9eb9n
    @user-ml2rb9eb9n 3 ปีที่แล้ว +4

    Поддерживаю.

  • @GantzStoltz
    @GantzStoltz 3 ปีที่แล้ว +3

    Для поднятия видео!

  • @evgeniyderevyanko4778
    @evgeniyderevyanko4778 3 ปีที่แล้ว +1

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

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว +1

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

  • @aleksandrbutenko6312
    @aleksandrbutenko6312 3 ปีที่แล้ว +2

    Ауффф

  • @serogavalapinaga2950
    @serogavalapinaga2950 3 ปีที่แล้ว +2

    Очень дельно. Недавно встретил образ, слои которого состоят из COPY и RUN, которые из слоя в слой чередуются. Ревью не делал, так как не было времени, мелько видел. Но общий объем образа был 18Gb. Насколько большие вообще в природе встречаются образы? Каждый новый образ будет размещаться на хосте и кушать место. А вычищать старые образы падает на плечи инженеров, которые поддерживают инфраструктуру, где этот образ запускается. Так же при каждой выкатке нового релиза время будет теряться на скачивание такого весомого образа на хост, а если это kubernetes, то при перемещении пода будет скачиваться такой огромный образ на новую ноду, куда осуществляется перемещение. Есть ли какие-то рекомендации как вычищать старые образы? На данный момент не сильно актуально, но в бэклог задачу себе записали.

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Докер слои перетспользуют

  • @Глупыйдурачок
    @Глупыйдурачок 3 ปีที่แล้ว +2

    Что за файл и куда ты копируешь на строчке 6? 8:16

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Это конфиг. Я его буду передавать в докер

    • @Глупыйдурачок
      @Глупыйдурачок 3 ปีที่แล้ว

      @@pavlenkoat Спасибо

  • @sergeydev8273
    @sergeydev8273 3 ปีที่แล้ว +2

    Лайк и коммент для продвижения видео :)
    За выпуск, отдельная благодарочка)

  • @NemchinovRP
    @NemchinovRP 3 ปีที่แล้ว +1

    test

  • @azerpiriyev7302
    @azerpiriyev7302 3 ปีที่แล้ว +1

    Good

  • @21JackHammer
    @21JackHammer 3 ปีที่แล้ว +2

    Плюсую

  • @alimzhanshabarov4204
    @alimzhanshabarov4204 3 ปีที่แล้ว +2

    Расскажи про тяжёлые запросы в базу

  • @Владимир-б4у7в
    @Владимир-б4у7в 3 ปีที่แล้ว +1

    Здравствуйте помогите разобраться, мне скинули инструкцию для одного Телеграмм бота звучит она так ( Устанавливаете Docker, создаёте рабочую станцию и открываете Docker систему из архива). Docker я установил, а всё остальное для меня тёмный лес. 126 палец в верх под вашим видео поставил.

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว +1

      Есть видео про докерфайл и как докером пользоваться поищите на канале

    • @Владимир-б4у7в
      @Владимир-б4у7в 3 ปีที่แล้ว

      @@pavlenkoat Не помните как видео называется?

  • @nt2548
    @nt2548 3 ปีที่แล้ว +2

    Спасибо за видос

  • @alimzhanshabarov4204
    @alimzhanshabarov4204 3 ปีที่แล้ว +1

    Как использовать команду COPY чтобы копировать не директории Dockerfile, а с любого места на диске? К примеру, хочу скопировать так COPY /etc/nginx/nginx.conf /etc/nginx/nginx.conf

    • @dzen1234
      @dzen1234 3 ปีที่แล้ว +1

      Такое лучше на StackOverflow искать.
      Краткий ответ "никак", копировать можно только из build context.
      stackoverflow.com/questions/47012495/docker-copy-from-ubuntu-absolute-path

    • @РоманОвсянников-к1п
      @РоманОвсянников-к1п 3 ปีที่แล้ว +1

      Только совать конф nginx в докерфайл директорию.

    • @alimzhanshabarov4204
      @alimzhanshabarov4204 3 ปีที่แล้ว

      @@dzen1234 спасибо

    • @alimzhanshabarov4204
      @alimzhanshabarov4204 3 ปีที่แล้ว

      @@РоманОвсянников-к1п спасибо

  • @romeocapuletti2425
    @romeocapuletti2425 3 หลายเดือนก่อน +1

    Вся суть вот тут 2:50

  • @vasiliyreznik1789
    @vasiliyreznik1789 3 ปีที่แล้ว +2

    Спасибо, контент очень годный! )

  • @Inquisitin
    @Inquisitin 4 หลายเดือนก่อน

    3:39 вообще хз кто так делает я когда собирал в один из первых своих опытов я юзал docker compose из ямл файла, но очень долго приступал к практике так что я много мат.части читал и смотрел. Так что мейби из-за этого избежал этой ошибки.

  • @ДмитрийСоловьёв-ц2п
    @ДмитрийСоловьёв-ц2п 3 หลายเดือนก่อน

    Не проще будет использовать докер образ python нужной версии, чем брать за основу образ убунту и на неё ставить питон?

  • @tihon_ya
    @tihon_ya หลายเดือนก่อน

    Классное видео, мне заказчик написал на мой докер композ "сделать его персистентным" что это значит?

  • @olegsolodkov5794
    @olegsolodkov5794 3 ปีที่แล้ว +13

    Круто! Спасибо!
    Было бы замечательно увидеть более широкий обзор best practies по докеру с примерами.

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว +2

      Потихоньку набираю ролики

  • @hwd1978
    @hwd1978 3 ปีที่แล้ว +1

    Каждый слой - это дельта по отношению к предыдущему или же полная копия предыдущего плюс дельта? И как посмотреть состав и размеры слоёв в образе, дабы оценить: стоит ли овчинка выделки?

    • @nyamka123987
      @nyamka123987 ปีที่แล้ว

      Слой это дельта. Посмотреть можно экспортировав образ командой `docker save ImageID -o ImageName.tar`, затем выполнить `tar -xvf ImageName.tar` (желательно в пустой директории, т.к. скорее всего будет много файлов/директорий извлечено). Каждая новая директория - это слой, в каждой директории лежит layer.tar, их тоже надо распаковать. Распакованный layer.tar это и есть содержимое конкретного слоя. Количество слоёв скорее всего будет больше количества строк в Dockerfile (исключая комментарии и пустые строки), так как в директории будут лежать слои образов, на которых базируется ваш образ
      Только подставьте свой image id, а image name может быть произвольным, он ни на что не влияет

  • @igancev
    @igancev 3 ปีที่แล้ว +2

    Спасибо. Все знакомо, хорошо разложено по полочкам. Для себя новое узнал, а точнее забытое старое, что для go бинаря финальный базовый образ можно использовать scratch, попробую. Прежде использовал apline

  • @juliusmalkov9620
    @juliusmalkov9620 ปีที่แล้ว

    Лайк поставил, вот только в комментах писать нечего((

  • @mr_q_q
    @mr_q_q 3 ปีที่แล้ว

    comment for docker)

  • @ИльясМугинов-д1и
    @ИльясМугинов-д1и 3 ปีที่แล้ว +1

    Хорошо рассказываешь +1 активность)

  • @alex-ma-boy
    @alex-ma-boy 3 ปีที่แล้ว +5

    Комментарии в поддержку канала! Удачи!

  • @SashkaSudaka
    @SashkaSudaka 2 ปีที่แล้ว

    Krasuvo

  • @MikhailRumyantsev-r1n
    @MikhailRumyantsev-r1n ปีที่แล้ว

    Комментарий в поддержку канала!

  • @itpositiv
    @itpositiv 3 ปีที่แล้ว

    Поддерживаю - Like

  • @muhitshalgimbaev6602
    @muhitshalgimbaev6602 3 ปีที่แล้ว

    norm

  • @andreydmitriyev4582
    @andreydmitriyev4582 3 ปีที่แล้ว

    =

  • @yevhenbaidiuk8695
    @yevhenbaidiuk8695 3 ปีที่แล้ว

    +

  • @ProfileFlin
    @ProfileFlin ปีที่แล้ว

    👍

  • @РоманПасечников-е8э
    @РоманПасечников-е8э 10 หลายเดือนก่อน

    😊

  • @trofimm68
    @trofimm68 2 ปีที่แล้ว

    комментарий в поддержку этого видео

  • @amirshanenov9682
    @amirshanenov9682 3 ปีที่แล้ว

    коммент))

  • @sergeymurmanch8506
    @sergeymurmanch8506 2 ปีที่แล้ว

    Что-нибудь больше пяти слов и не оскобительное)

  • @mykolaprokopenko318
    @mykolaprokopenko318 3 ปีที่แล้ว

    коммент

  • @pominov_d
    @pominov_d 2 ปีที่แล้ว

    комментарий в поддержку видео ))

  • @MrNippones
    @MrNippones 3 ปีที่แล้ว

    В поддержку коментарий)

  • @alexk377
    @alexk377 ปีที่แล้ว

    Поднимаю активность под видео!

  • @MyF1ch
    @MyF1ch 3 ปีที่แล้ว

    А как обстоят дела с проектом который планировалось пилить, потом к нему чарт и выкладку, кто-нибудь делает?

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Есть видео на канале первое.

  • @mikejedi7165
    @mikejedi7165 3 ปีที่แล้ว

    Йо!!! Коммент в поддержку видео!

  • @КритикЛатунский-х1т
    @КритикЛатунский-х1т 2 ปีที่แล้ว

    Хороший контент.
    Подписался)

    • @pavlenkoat
      @pavlenkoat  2 ปีที่แล้ว +1

      Спасибо

  • @M_V0id
    @M_V0id 11 หลายเดือนก่อน

    Всегда отличные видосы.

  • @NatureFitSport
    @NatureFitSport 3 ปีที่แล้ว

    Что такое прод?

  • @turdakhov
    @turdakhov 2 ปีที่แล้ว

    Коммент в поддержку видео про докер :)

  • @oleksandrbatyn232
    @oleksandrbatyn232 ปีที่แล้ว

    Ничего не понял, но буду учить

  • @miketunik3899
    @miketunik3899 3 ปีที่แล้ว +1

    Отличные советы, спасибо!

  • @ЭдКалумнуз
    @ЭдКалумнуз 3 ปีที่แล้ว

    Ютуб продвигай

  • @golbIi_veshaet
    @golbIi_veshaet ปีที่แล้ว

    Коммент в поддержку

  • @Roman-wj5nn
    @Roman-wj5nn 3 ปีที่แล้ว +1

    как раз в тему!

  • @wallispotter134
    @wallispotter134 3 ปีที่แล้ว

    Круто! Не всё понятно, а точнее почти всё, но поддержать однозначно надо. Написал бы комментарий подлинней если бы хватало скила... Может в следующий раз.

  • @АндрейК-у6л
    @АндрейК-у6л 3 ปีที่แล้ว

    Мало что понятно, но спасибо!

  • @alekseyveld7559
    @alekseyveld7559 3 ปีที่แล้ว

    Интересный канал

  • @admkmm2996
    @admkmm2996 3 ปีที่แล้ว

    во имя поддержки

  • @p4el63
    @p4el63 ปีที่แล้ว

    ждем новых видео

  • @sherzodabdumutalibov1384
    @sherzodabdumutalibov1384 4 หลายเดือนก่อน

    комментарий

  • @Miron_Nicolaevich
    @Miron_Nicolaevich 6 หลายเดือนก่อน

    Топчик!

  • @vladdeiy572
    @vladdeiy572 ปีที่แล้ว

    go bot пушка

  • @1984Nik1
    @1984Nik1 2 ปีที่แล้ว

    отличное видео

  • @realkgsite
    @realkgsite ปีที่แล้ว

    комментарий

  • @eliasantoniadis8556
    @eliasantoniadis8556 3 หลายเดือนก่อน

    прикольно!

  • @SiriusBlackNuar
    @SiriusBlackNuar 3 ปีที่แล้ว

    комментарий

  • @AHreJI1
    @AHreJI1 3 ปีที่แล้ว

    комментарий

  • @narekfereshetyan1662
    @narekfereshetyan1662 3 ปีที่แล้ว

    В поддержку

  • @timanov_devops
    @timanov_devops ปีที่แล้ว

    Благодарю!

  • @willgraham810
    @willgraham810 3 ปีที่แล้ว

    +поддержка

  • @KindnessSavesTheWorld
    @KindnessSavesTheWorld 3 ปีที่แล้ว

    Супер👍💯

  • @andreyq9179
    @andreyq9179 3 ปีที่แล้ว

    Спасибо 3

  • @andreyq9179
    @andreyq9179 3 ปีที่แล้ว

    Спасибо 2

  • @YuriRadavchuk
    @YuriRadavchuk 3 ปีที่แล้ว

    Контент 🔥

  • @andreyq9179
    @andreyq9179 3 ปีที่แล้ว

    Спасибо

  • @user-ce3lm7sz1k
    @user-ce3lm7sz1k ปีที่แล้ว

    огонь

  • @orange-vlcybpd2
    @orange-vlcybpd2 3 ปีที่แล้ว

    Полезно

  • @ИванЧопей-ф9х
    @ИванЧопей-ф9х 3 ปีที่แล้ว

    Круто!

  • @РоманОвсянников-к1п
    @РоманОвсянников-к1п 3 ปีที่แล้ว

    Класс

  • @MN-mi6eo
    @MN-mi6eo 3 ปีที่แล้ว

    круто!
    а то я вечно запихивал все подряд

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Это частое явление

  • @ВасилийСазыкин
    @ВасилийСазыкин 3 ปีที่แล้ว

    Подскажите, что за редактор кода на видео был?

  • @sobaka_baka
    @sobaka_baka 3 ปีที่แล้ว

    Есть мнение что алгоритмы ютуба не охотно продвигают видео где меньше шести слов поэтому вот мои слова в поддержку видео

  • @moscowstanislav
    @moscowstanislav 8 หลายเดือนก่อน

    Здравствуйте! Очень своевременное видео. Полезный совет.

  • @mrshrooman
    @mrshrooman 3 ปีที่แล้ว

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

  • @БратецТук-о2л
    @БратецТук-о2л 3 ปีที่แล้ว

    Не делайте кликбейтных названий ( это признак говна ) и люди к вам потихоньку подтянутся .

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Да вот статистика говорил об обратном

    • @БратецТук-о2л
      @БратецТук-о2л 3 ปีที่แล้ว

      @@pavlenkoat эта информация устарела ,даже дети не ведутся на подобные названия

    • @pavlenkoat
      @pavlenkoat  3 ปีที่แล้ว

      Я говорю про статистику что мне даёт Гугл. По моим видео

  • @ПихалМетрович-ф3э
    @ПихалМетрович-ф3э 3 ปีที่แล้ว

    Очень нравится Ваши видео. Ни давно начал пользоваться Линукс.... Начал с Mint. Ваши видео очень понятно объясняют. Спасибо Вам!!!

  • @wordpreslabs
    @wordpreslabs 3 ปีที่แล้ว

    Спасибо за материал. Очень подробно, правда легче в понимании от этого не стало) я конечно не девопс, а просто фортендер, однако для общего развития хотелось бы конечно себе жизнь упростить при развёртки приложений. Купил книжечку даже от O'REILYY "Использование Docker" вроде как там довольно подробно всё разжёвывается.

  • @МарияФролова-т7я
    @МарияФролова-т7я ปีที่แล้ว

    Спасибо!!! Очень полезная информация

  • @newalexxx
    @newalexxx 3 ปีที่แล้ว

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

  • @_mrmark
    @_mrmark ปีที่แล้ว

    Из 9 минут - 3 минуты реклама

    • @pavlenkoat
      @pavlenkoat  ปีที่แล้ว

      А 6 минут полезной информации.