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

Поделиться
HTML-код
  • Опубликовано: 2 дек 2024

Комментарии • 208

  • @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 путь абсолютный. И может так сложиться, что пути разойдутся.

  • @роматарасов-о8л
    @роматарасов-о8л 3 года назад +2

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

  • @АндрейЗубков-ж2б
    @АндрейЗубков-ж2б 3 года назад +16

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

  • @TheMonigoral
    @TheMonigoral 3 года назад +5

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

  • @sobaka_baka
    @sobaka_baka 3 года назад

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

  • @ПихалМетрович-ф3э
    @ПихалМетрович-ф3э 3 года назад

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

  • @igancev
    @igancev 3 года назад +2

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

  • @sergeydev8273
    @sergeydev8273 3 года назад +2

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

  • @khayolnoranjov918
    @khayolnoranjov918 3 года назад

    Антоном Павленко один из лучших IT блогеров по СНГ!
    Спасибо!

    • @pavlenkoat
      @pavlenkoat  3 года назад

      Спасибо большое.

  • @vpnsslru
    @vpnsslru 3 года назад +2

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

  • @rafikrushanian
    @rafikrushanian 3 года назад +3

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

  • @newalexxx
    @newalexxx 3 года назад

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

  • @turdakhov
    @turdakhov 2 года назад

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

  • @mrshrooman
    @mrshrooman 3 года назад

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

  • @coopergoldchrest7768
    @coopergoldchrest7768 3 года назад +3

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

  • @moscowstanislav
    @moscowstanislav 10 месяцев назад

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

  • @MikhailRumyantsev-r1n
    @MikhailRumyantsev-r1n Год назад

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

  • @ВладимирЦентровой-ц1ф

    В поддержку канала, видео))))

  • @ilyak6358
    @ilyak6358 3 года назад +2

    Даёшь IT в массы!!! (это лозунг :)

  • @lanfix1320
    @lanfix1320 3 года назад

    Круто. Как раз недавно начал писать на го. Этот контент мне очень помог разобраться с компиляцией в отдельном контейнере. Спасибо.

  • @sergeybarmaley125
    @sergeybarmaley125 Год назад

    Cпасибо тебе добрый человек !!!

  • @alexk377
    @alexk377 Год назад

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

  • @vasiliyreznik1789
    @vasiliyreznik1789 3 года назад +2

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

  • @ildarbagamanshin8170
    @ildarbagamanshin8170 Год назад

    Супер! Спасибо за контент!

  • @user-ml2rb9eb9n
    @user-ml2rb9eb9n 3 года назад +4

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

  • @allhimik
    @allhimik 3 года назад

    Поддерживаю видео) Спасибо автору!

  • @alex-ma-boy
    @alex-ma-boy 3 года назад +5

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

  • @ИльясМугинов-д1и
    @ИльясМугинов-д1и 3 года назад +1

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

  • @МарияФролова-т7я

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

  • @M_V0id
    @M_V0id Год назад

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

  • @miketunik3899
    @miketunik3899 3 года назад +1

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

  • @nt2548
    @nt2548 3 года назад +2

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

  • @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 раза больше это логично.

  • @GantzStoltz
    @GantzStoltz 3 года назад +3

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

  • @SunANT-k7r
    @SunANT-k7r 2 года назад

    Очень полезное видео, спасибо дядь)

  • @alexxx4233
    @alexxx4233 3 года назад

    Успехов с каналом.

  • @trofimm68
    @trofimm68 2 года назад

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

  • @alimzhanshabarov4204
    @alimzhanshabarov4204 3 года назад +2

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

  • @ИльназМингазов-з6л
    @ИльназМингазов-з6л 2 года назад

    Спасибо за видео урок

  • @olegsolodkov5794
    @olegsolodkov5794 3 года назад +13

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

    • @pavlenkoat
      @pavlenkoat  3 года назад +2

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

  • @АндрейЗахватошин-к6ш

    Полезное видео!! Успехов!

  • @blackscale9041
    @blackscale9041 3 года назад

    Спасибо, Антон, нравится ваша подача контента!

  • @Roman-wj5nn
    @Roman-wj5nn 3 года назад +1

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

  • @КириллМалов-ь8е
    @КириллМалов-ь8е 2 года назад

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

  • @denissavast
    @denissavast 3 года назад

    Благодарю! Удачи Вам!

  • @serogavalapinaga2950
    @serogavalapinaga2950 3 года назад +2

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

    • @pavlenkoat
      @pavlenkoat  3 года назад

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

  • @pominov_d
    @pominov_d 2 года назад

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

  • @johnsc4521
    @johnsc4521 3 года назад

    Отлично.
    А теперь соберите бинарь в контейнере с одной версией glibc. И запустите в другом контейнере, с другой версией glibc.
    А видео полезное, лайк!

    • @linuxoidovich
      @linuxoidovich Год назад

      Или соберите бинарь на musl, когда в контейнере glibc.

  • @iyura1997
    @iyura1997 3 года назад

    Топ контент)
    Достаточно понятно, даже для немного левого к программированию технаря

    • @pavlenkoat
      @pavlenkoat  3 года назад

      Я объяснял в свое время как работать на компьютерах бабушкам. Уж технори должны понимать.

  • @mikejedi7165
    @mikejedi7165 3 года назад

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

  • @ДмитрийЕвсеев-е1о
    @ДмитрийЕвсеев-е1о 3 года назад

    Спасибо за выпуски, поддерживаю

  • @ИванБухенко
    @ИванБухенко 2 года назад

    Спасибо за видео Вам. Очень познавательно и интересно.

  • @Zzepish
    @Zzepish 3 года назад

    Афигеть! Очень круто! Большое спасибо 🙂

  • @АндрейК-у6л
    @АндрейК-у6л 3 года назад

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

  • @АнтонКраснов-ж7н
    @АнтонКраснов-ж7н 3 года назад +4

    В поддержку

  • @itpositiv
    @itpositiv 3 года назад

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

  • @evgeniyderevyanko4778
    @evgeniyderevyanko4778 3 года назад +1

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

    • @pavlenkoat
      @pavlenkoat  3 года назад +1

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

  • @tihon_ya
    @tihon_ya 3 месяца назад

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

  • @romam3114
    @romam3114 3 года назад

    Удачи!!!

  • @КритикЛатунский-х1т

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

  • @belarusbelarus1377
    @belarusbelarus1377 3 года назад

    Спасибо за ценную информацию

  • @ПавелСтратнев
    @ПавелСтратнев 3 года назад

    Спасибо Антон!

  • @levonisrayelyan5393
    @levonisrayelyan5393 3 года назад

    Спасибо добрый человек

  • @wallispotter134
    @wallispotter134 3 года назад

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

  • @finalistx
    @finalistx 3 года назад +2

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

    • @pavlenkoat
      @pavlenkoat  3 года назад

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

    • @finalistx
      @finalistx 3 года назад

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

    • @pavlenkoat
      @pavlenkoat  3 года назад

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

  • @ovanse
    @ovanse 3 года назад

    Спасибо за контент. 👍 Подчерпнул для себя рад полезных моментов!

  • @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п спасибо

  • @MN-mi6eo
    @MN-mi6eo 3 года назад

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

    • @pavlenkoat
      @pavlenkoat  3 года назад

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

  • @hound406
    @hound406 3 года назад

    Лайк и коммент для продвижения видео!)

  • @ИванЧопей-ф9х
    @ИванЧопей-ф9х 3 года назад

    Круто!

  • @golbIi_veshaet
    @golbIi_veshaet Год назад

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

  • @1984Nik1
    @1984Nik1 2 года назад

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

  • @marinakaryukova6231
    @marinakaryukova6231 2 года назад

    Понравилось. Хочется еще более конкретного видео, например про docker + postgresSQL

  • @hwd1978
    @hwd1978 3 года назад +1

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

    • @nyamka123987
      @nyamka123987 2 года назад

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

  • @ДмитрийСоловьёв-ц2п
    @ДмитрийСоловьёв-ц2п 5 месяцев назад

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

  • @murashov_a
    @murashov_a 3 года назад

    очень полезно, спасибо

  • @Владимир-б4у7в
    @Владимир-б4у7в 3 года назад +1

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

    • @pavlenkoat
      @pavlenkoat  3 года назад +1

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

    • @Владимир-б4у7в
      @Владимир-б4у7в 3 года назад

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

  • @Глупыйдурачок
    @Глупыйдурачок 3 года назад +2

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

  • @MrNippones
    @MrNippones 3 года назад

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

  • @alekseyveld7559
    @alekseyveld7559 3 года назад

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

  • @KindnessSavesTheWorld
    @KindnessSavesTheWorld 3 года назад

    Супер👍💯

  • @alexanderalexandrov2099
    @alexanderalexandrov2099 3 года назад

    Great video!

  • @денисвиноградов-э7в

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

  • @MyF1ch
    @MyF1ch 3 года назад

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

    • @pavlenkoat
      @pavlenkoat  3 года назад

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

  • @Inquisitin
    @Inquisitin 6 месяцев назад

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

  • @ВасилийСазыкин
    @ВасилийСазыкин 3 года назад

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

  • @igoregorov2115
    @igoregorov2115 3 года назад

    Спасибо за видео и канал! Расскажи, пожалуйста, про кластера СУБД

  • @p4el63
    @p4el63 Год назад

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

  • @eliasantoniadis8556
    @eliasantoniadis8556 5 месяцев назад

    прикольно!

  • @Miron_Nicolaevich
    @Miron_Nicolaevich 8 месяцев назад

    Топчик!

  • @YuriRadavchuk
    @YuriRadavchuk 3 года назад

    Контент 🔥

  • @alexxx4233
    @alexxx4233 3 года назад

    Коммент в плечи - никто не вечен)

  • @21JackHammer
    @21JackHammer 3 года назад +2

    Плюсую

  • @romeocapuletti2425
    @romeocapuletti2425 5 месяцев назад +1

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

  • @oleksandrbatyn232
    @oleksandrbatyn232 Год назад

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

  • @orange-vlcybpd2
    @orange-vlcybpd2 3 года назад

    Полезно

  • @juliusmalkov9620
    @juliusmalkov9620 2 года назад

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

  • @andreyq9179
    @andreyq9179 3 года назад

    Спасибо 3

  • @OlgaRyzhkova-yn9gd
    @OlgaRyzhkova-yn9gd Год назад

    Безумно интересное и полезное видео, попалось очень вовремя. СПАСИБО! Тройной лайк

  • @eananyev
    @eananyev 3 года назад

    Есть что-то, мельче alpine? Интересно, надо попробовать...
    Следующим этапом минимизации будет приложение в виде модуля к самому ядру?