Оптимизация Django. 1 - Django + Docker

Поділитися
Вставка
  • Опубліковано 4 чер 2024
  • 00:00 Про Docker и зачем он нужен
    04:29 Установка и настройка Docker
    06:38 Скачиваем Git и PyCharm
    07:26 создаем репозиторий в GitHub
    10:36 создание Django проекта в Docker
    13:02 Создаем базовый image в Dockerfile
    19:19 Пишем docker-compose файл
    25:35 docker-compose build
    28:18 django-admin startproject через docker-compose
    29:22 docker-compose up
    30:36 git commit / push через PyCharm
    31:30 Подключаем Postgres к приложению Django через Docker
    40:24 Подключаем второй интерпретатор к PyCharm
    42:18 Устанавливаем psycopg2 и postgresql-client в Docker
    44:57 Применяем manage.py migrate в docker-compose
    46:10 manage.py createsuperuser в docker-compose
    47:27 Docker Desktop
    49:00 Резюме этого видео

КОМЕНТАРІ • 263

  • @user-qp8of2vk9y
    @user-qp8of2vk9y Рік тому +21

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

    • @user-dz6et7mf6l
      @user-dz6et7mf6l Рік тому

      Привет! Если тебе не сложно можешь подробнее описать что и куда надо переставить в докерфайле, чтобы слои не переписывать?

    • @shakhzod_me
      @shakhzod_me Рік тому +3

      @@user-dz6et7mf6l он имеет ввиду после COPY requirements.txt /temp/requirements.txt (строка 3) сразу устанавливать зависимости(строка 8, 10, 12), потому что каждый раз когда меняется код, докер это автоматом понимает по хеш суммам и начинает выполнение с строки 4, так как именно там мы копируем все исходники проекта, соответственно начинается выполнение строки 8 и т.д.

    • @user-qp8of2vk9y
      @user-qp8of2vk9y Рік тому +2

      @@shakhzod_me именно. Т.е. строку с COPY service .... передвинуть максимально вниз по логике действий, т.к. строки выполняются по порядку и всё что может не выполняться, а быть взято из кэша, будет взято из кэша. А самое долгое по времени выполнения при последующих деплоях, это строка с pip install ... Её лучше ставить выше Copy service, но ниже Copy requairements ..... И ничего выше них не. Должно меняться при билде новых версий, тогда пакеты не будут качаться каждый раз

    • @user-qp8of2vk9y
      @user-qp8of2vk9y Рік тому

      @@rocky-04 что за ошибка? На каком шаге возникает?

    • @user-qp8of2vk9y
      @user-qp8of2vk9y Рік тому

      @@rocky-04 попробуйте собрать на базовом образе не alpine. На нем у меня при установке дополнительных пакетов бывали случаи, когда не стартовал питон. Например, python3.9-slim.

  • @mcaq1
    @mcaq1 Рік тому +20

    Самый лучший урок по Докер+Джанго на Ютубе(включая англоговорящий) для новичков.

  • @user-vl1el8bp7y
    @user-vl1el8bp7y Рік тому +5

    Спасибо! Курс как и все предидущие - супер!

  • @geniculata_spider
    @geniculata_spider Рік тому +5

    Как я ждал твои видео)))очень понятно объясняешь, спасибо за твой труд

  • @user-de9xw2bi8p
    @user-de9xw2bi8p Рік тому +3

    Шикарное видео , альтернативы на просторах не встречал ! Спасибо вам большое за такие ценные знания

  • @dmitriivanov7010
    @dmitriivanov7010 Рік тому

    Спасибо Сеньору Помидору, это лучшее видео по Докеру

  • @alexblast3292
    @alexblast3292 Рік тому +1

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

  • @korumika3798
    @korumika3798 Рік тому

    Классный свет и новая камера, прям летняя атмосфера, смотреть еще приятнее :)!

  • @user-pd7vq6io8h
    @user-pd7vq6io8h Рік тому

    Классный урок по запуску Django в Docker, всё получилось!

  • @good_royal_guy
    @good_royal_guy Рік тому

    блин, какой ты классный, хорошо объясняешь, прям услада для ушей👍

  • @godgive994
    @godgive994 11 місяців тому

    От души! Посмотрел твои предыдущие курсы по джанго. Формат, подача идеальны!

  • @smerrch
    @smerrch Рік тому

    Большое Вам спасибо за курс!

  • @Alekseyild
    @Alekseyild Рік тому

    Качество контента как всегда на уровне

  • @marsminerstone5504
    @marsminerstone5504 Рік тому +1

    Спасибо большое, это очень полезный ролик!

  • @Andrey_Fedorov
    @Andrey_Fedorov Рік тому

    Очень круто! Огромное спасибо!

  • @user-pn7ts7wg5e
    @user-pn7ts7wg5e Рік тому

    Это то, что мне так долго не хватало. Большое тебе спасибо, обнял.

  • @GRIMEANARCHY
    @GRIMEANARCHY Рік тому

    Пушка будет, то что надо) Ждем :)

  • @viktorpryima2994
    @viktorpryima2994 Рік тому +2

    Огромные слова благодарности за ту работу, которую вы проделали!!!
    Вы один из тех спикеров, благодаря кому я работаю с технологиями и фреймворками о которых вы рассказываете.
    Если есть возможность, (очень актуально....) можете рассказать как использовать интерпритатор python при разработке через docker-compose в IDE PyCharm Professional.
    Еще раз благодарю!!!!

  • @user-qp8of2vk9y
    @user-qp8of2vk9y Рік тому +8

    Контейнеры, которые пришлось удалять - это имеджы от предыдущих билдов. Каждый новый билд делает новый имедж и из него запускает контейнеры, а старые имеджи остаются висеть. Чистится через docker prune. Ключ --rm удаляет контейнеры после остановки, но не собранные имеджи

  • @Bibliophilos
    @Bibliophilos Рік тому

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

  • @user-tf9ku1xx7x
    @user-tf9ku1xx7x Рік тому

    свежий видосик = свежий лайк

  • @koloboopsik
    @koloboopsik Рік тому

    Топчик, спасибо за урок

  • @Developer_python_
    @Developer_python_ Рік тому +2

    Люто плюсую)

  • @andrewv8350
    @andrewv8350 3 місяці тому

    Боже храни Сеньора Помидора! =) Великолепный контент!

  • @a98cb985
    @a98cb985 Рік тому

    И снова оч спасибо!

  • @IslamMamedow
    @IslamMamedow Рік тому

    Спасибо, то что искал

  • @Artem36
    @Artem36 Рік тому

    Улёт ⚡

  • @archibaldivanovich4103
    @archibaldivanovich4103 Рік тому

    Огромное спасибо!

  • @Name-ko3qb
    @Name-ko3qb Рік тому +1

    Классная штука docker

  • @igorkulibaba7287
    @igorkulibaba7287 Рік тому

    ОООО крутяк💪

  • @koshakpoc2876
    @koshakpoc2876 Рік тому

    Вот сеньор и подвёз годного контента

  • @Rulezzz3
    @Rulezzz3 7 місяців тому +1

    Случайно наткнулся на этот канал, когда возникла нужда добавить Celery в Django. Ведущий очень понравился. Такое чувство, что смотрю Варламова, только гораздо улучшенную его версию: спокойная и грамотная речь. Особенно мне нравится как в режиме онлайн он кодит, мне как новичку становится гораздо легче, так как вижу как сеньор это делает подглядывая на второй экран, значит и я не должен помнить синтаксис всего наизусть

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  7 місяців тому

      Спасибо! 😁 второй экран это я докер конфигурацию плохо помню, ну и примеры кода смотрю, которые буду делать. Синтаксис питона я конечно помню )

  • @alkha7144
    @alkha7144 Рік тому

    В поддержку.

  • @sergiybustrov8831
    @sergiybustrov8831 7 місяців тому

    Спасибо тебе!

  • @MyFearIsMyBlue
    @MyFearIsMyBlue 11 місяців тому

    Отдельное спасибо за DB_HOST=database. Никак не удавалось сбридждить приложение и postgres, кроме как через наружний ip. Ни localhost, ни четыре нуля, ни ip контейнера не работали. А тут завелось без прокидвания порта бд наружу!

  • @jamjam3337
    @jamjam3337 3 місяці тому

    спасибо!👏👍

  • @alikust
    @alikust 9 місяців тому

    docker-compose exec web-app python manage-py migrate - Миграции можно и так накатить. (тире на точку поменяйте, Туб ссылки удаляет)
    Автору низкий поклон 🙏

  • @tynnikov
    @tynnikov 9 місяців тому

    Во-первых, спасибо за уроки!
    Во-вторых, подскажи пожалуйста название утилиты, которая следит за использованием оперативной памяти?

  • @user-sh3wb1cy5f
    @user-sh3wb1cy5f 5 місяців тому

    Спасибо большое! Я не верил что мне, новичку, получиться по этому видео развернуть свой проект на докер. Конечно, пришлось по пути исправлять кучу ошибок и делать по интуиции в некоторых местах, но всё равно получилось! Осталось разобраться с Celery...

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  5 місяців тому +1

      Спасибо за отзыв! Такая у нас специфика работы, исправлять кучу ошибок и иногда делать по интуиции)

  • @noname52rus
    @noname52rus 8 місяців тому

    спасибо!

  • @korumika3798
    @korumika3798 Рік тому

    Вот начал 3 курс. Вспоминаю 1 запуск 1го видео "Блин, ааааааа, как же нудно он говорит!". Я тогда не осознавал и только на втором курсе понял, что это мой мозг подвергается правильной нагрузке. Это реальная учеба, а не видео из разряда "Йоу йоу йоу и сегодня мы изучим машинное обучение за 13 секунд!". На втором курсе я настолько преисполнился, что материал начал восприниматься не "нудно", а даже слишком быстро "эйэй, подожди, не успеваю!". Не устану писать как и все благодарности за курс, полностью на русском, получить бесплатно столько материала , который подается в формате "Ученик-репетитор", лучший !:)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

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

  • @dmitrymikhailovnicepianomu8688

    Спасибо

  • @tweak1207
    @tweak1207 Рік тому

    Сеньор, подскажи пожалуйста, а БД обязательно в контейнер заворачивать? что если у меня на хосте уже есть БД и я хочу использовать ее

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Не обязательно. Можно использовать локальную.

  • @user-np6lh1pi9i
    @user-np6lh1pi9i Рік тому +9

    У тех у кого уже есть локально postgres, то может возникнуть ошибка c портами(ведь 5432 уже занят). Для решение этой проблемы в приложение database добавьте ports: - "5433:5432"

    • @tweak1207
      @tweak1207 Рік тому

      Надо при этом где-то в compose переменных или еще где-то ставить 5433?

    • @russul2700
      @russul2700 Рік тому

      @@tweak1207 нет только в docker-compose пропиши. Потом по новому docker-compose up запускаешь, еще заново миграции не забудь сделать.

    • @vot_eto_Canada
      @vot_eto_Canada 11 місяців тому

      Спасибо тебе большое )

    • @understandwhat
      @understandwhat 9 місяців тому

      Спасибо огромное!

    • @user-ng6nx1uo5u
      @user-ng6nx1uo5u 6 місяців тому

      @@russul2700 а разве не нужно в сеттингсах самой джанги в настройках БД прописать порт 5433?
      правда мне ничего не помогало, пришлось удалить все контейнеры, снести с компа локальный постгрес, и только после этого все сработало.

  • @wissarius
    @wissarius Рік тому

    Вопрос: Обязательна ли команда "RUN apk add postgresql-client build-base postgresql-dev" в "Dockerfile", если у нас по сути есть описание конфигураций внутри "docker-compose.yml?

  • @glebomarov2841
    @glebomarov2841 6 місяців тому

    @Senior Pomidor Developer, добрый день. У меня все завелось, спасибо большое за это видео. Однако, после docker-compose down и последующего docker-compose up пропадают все юзеры, которых я создал в предыдущую сессию включая суперюзера. ЧЯДНТ? Нужно колдовать с volume?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  6 місяців тому +1

      Эээ. Не помню. Надо спросить у нас в чате, ссылка в профиле

    • @glebomarov2841
      @glebomarov2841 6 місяців тому

      @@SeniorPomidorDeveloper Понял. Я думал, команда down остонавливает контейнер, а она его вообще удаляет. Неудивительно, что данные стираются 🙂

  • @user-tm2gc3fg1m
    @user-tm2gc3fg1m 6 місяців тому

    отличное видео, но на 40:28 можно было просто нажать Configure Python interpreter в углу, сам пайчарм подсказывал)

  • @Pavel-er4hy
    @Pavel-er4hy Рік тому

    Добрый день!
    Подскажите, пожалуйста, название программы для мониторинга оперативной памяти для Виндоус?

  • @aidosatayev1333
    @aidosatayev1333 Рік тому +2

    какое приложение используете для мониторинга памяти?

  • @Chel1k7
    @Chel1k7 11 місяців тому

    top

  • @user-or9ks2ck5w
    @user-or9ks2ck5w 7 місяців тому

    Здравствуйте. Подскажите, пожалуйста, что у вас за папка temp? это новая папка для проекта?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  7 місяців тому

      Эээ. Блин, уже не помню. Обычно temp это значит temporary, то есть временные файлы , которые нужны для какой -то операции, а пооом можно удалить

  • @instigatorable
    @instigatorable Рік тому +5

    Лишние контейнеры создаются из-за того что вы используете команду в докере команду run, а не start.
    Цитата:
    START will start any stopped containers. This includes freshly created containers.
    RUN is a combination of create and start. It creates the container and starts it.

  • @mcaq1
    @mcaq1 Рік тому +5

    Ждем следующий урок! Можно было бы по 2 в день сразу)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +2

      да их не так много вцелом) быстро тогда закончатся )

    • @mcaq1
      @mcaq1 Рік тому

      @@SeniorPomidorDeveloper а сколько всего уроков?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +3

      10

    • @Artem36
      @Artem36 Рік тому +1

      @@SeniorPomidorDeveloper может это звучит нагло, но с твоим умением объяснять и подавать материал хотелось бы увидеть больше контента))

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +2

      Больше за деньги)

  • @ibrahimoglu
    @ibrahimoglu Рік тому

    👍

  • @vladvlad3544
    @vladvlad3544 Рік тому

    Есть ли существенная разница между alpine или debian/oracle? Вместо PostgreSQL хочу MySQL взять, так как с ней больше знаком, а альпайн там нет в доступных тэгах

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Можно любую SQL базу брать, у которой есть драйвер для Джанго. На ORM все выглядит одинаково, никакой разницы не почувствуете (кроме некоторых продвинутых функций, которые крайне редко используются)
      Можно debían конечно. Но есть небольшой риск , что если что-то делать не так , как в курсе , то где-то может быть другой результат или какие-то новые проблемы, которые нужно будет решить самостоятельно

    • @vladvlad3544
      @vladvlad3544 Рік тому

      @@SeniorPomidorDeveloper понял, попробую значит debian, а если будут ошибки и придется искать решения, то это тоже часть учебного процесса)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Точно 😁

  • @vladvlad3544
    @vladvlad3544 Рік тому

    Добрый день! У меня появился вопрос: нужно ли делать миграции, когда кто-то попытается развернуть мой докер проект? Т.е. сейчас, чтобы его развернуть я использую git clone, потом docker-compose build и docker-compose up, но вспомнил про миграции и задался вопросом, что я вроде никак их не трогаю, а они есть. Докер сам подхватывает, когда подключаешь к нему базу данных?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Добрый день. Так как в докере база чистая, то нужно делать migrate конечно. Или второй вариант, давать дамп базы, чтобы его развернули . А создавать миграции надо заранее , и класть в гит

    • @vladvlad3544
      @vladvlad3544 Рік тому

      @@SeniorPomidorDeveloper Я просто вот докеризировал уже готовый, другой проект, попытался его сам развернуть, клонируя сначала репозиторий из гита, а потом просто сбилдил (docker-compose build) его и поднял (docker-compose up) и при этом вся база данных не была пустой. Я немного не понял, почему она оказалось не пустой и поэтому обратился к Вам. Это я что-то не то сделал, или просто это из-за того, что миграции уже были в Гите?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

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

    • @vladvlad3544
      @vladvlad3544 Рік тому

      @@SeniorPomidorDeveloper точно, у меня же sqlite стоял, так что наверное да, бд подхватилась из-за этого. Спасибо!

  • @mikhaillermontov8228
    @mikhaillermontov8228 Рік тому

    Ссылка на гит будет ? Или чтобы повторить нужно перепечатывать?

  • @dodokwak
    @dodokwak Рік тому

    Спасибо огромное.
    p.s. эти images none создаются и без джанги ( использовала express from js). Руки не доходят разобраться, почему они плодятся.

  • @user-qd9vy1em1d
    @user-qd9vy1em1d Рік тому

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Добрый день! Ну старые курсы , конкретно для начинающих, будут проще. Это которые с белой и синей обложкой.
      Но там проблема в том, что устарели некоторые библиотеки и кое-что работать не будет (
      Если начинать с этого то все будет работать отлично.
      Наверно с этого начинайте , а дальше лучше вернитесь старые. Может у вас получится сделать их на основе этого проекта из нового курса

    • @MrCipec
      @MrCipec Рік тому +3

      Советую сначала канал selfedu (джанго+рест), потом помидора можно посмотреть, т.к. у него меньше объяснений и в целом более продвинутая инфа

  • @ocean6305
    @ocean6305 Рік тому

    Возник вопрос, а где лежит база postgres? Она же не за бэндмаучена, это значит что контейнер остановится и все данные слетят. Или я что то пропустил. Можно пояснить? Есть bind mount для Django только)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

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

  • @user-ii2sq9cq3y
    @user-ii2sq9cq3y 6 місяців тому

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  6 місяців тому

      Хм. Видимо по тому что она осталась в контейнере .

  • @sergkuksov
    @sergkuksov Рік тому

    Спасибо за уроки. Можно ещё урок или подсказку как задеплоить докер контейнер и как его запускать правильно? Наверное нужно что вроде связки с nginx?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

      Докер на сервере это отдельная тема для еще одного большого видео.

  • @alexbely2269
    @alexbely2269 Рік тому

    На 26 минуте при переходе в директорию которая в PyCharm (и что значит куда СКАЧАЛИ git проект) командой в терминале "~ cd PycharmProjects/service_app" у вас высвечивается директория "service_app git:(main) x". Почему так? Или это фишка Mac? (У меня Ubuntu)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

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

    • @alexbely2269
      @alexbely2269 Рік тому

      @@SeniorPomidorDeveloper Спасибо за ответ! Ваш труд неоценим!

    • @montecristo31
      @montecristo31 Рік тому

      установи zsh и + тему, которая поддерживают такую фичу.

  • @Play-fs9gv
    @Play-fs9gv Рік тому

    Не очень понял вот что - зачем в докер файле команда копирования папки service внутрь контейнера если в композе все равно монтируем на это место готовую внешнюю папку?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Хороший вопрос! Это был первоначальный план , думаю что и без этого должно работать , если только монтировать

  • @NoName-rv3vb
    @NoName-rv3vb Рік тому

    Как установить docker desktop на linux mint? а так же при docker-compose build вызодит ошибка
    DockerException(
    docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Напишите в группу в телеграмме, ссылка в профиле. может там помогут , у кого-то была похожая проблема .

  • @gaunter_o_d1mm
    @gaunter_o_d1mm Рік тому

    Я бы всё таки советовал использовать дебиан образ для Докерфайла, понятно что он ест больше памяти, но в то же время он и работает намного быстрее, это сейчас у вас просто базовая Джанго, а если в ней будет 20+ зависимостей, то и устанавливаться они будут по 3-5 минут, это если вы alpine образ используете, а с дебиан образом всё устанавливается намного быстрее и вроде как асинхронно, то есть не каждый образ по порядку, а несколько одновременно.

  • @korumika3798
    @korumika3798 Рік тому

    Возник вопрос, я как обладатель Windows , вижу что Docker делался как я понимаю не под нее и все функции автоматом есть в MacOs и Linux , а тут придется поводится с WSL. Просто теже Resource , он предлагает менять на прямую через файл конфига, мне просто интересно это норма и у всех так на Винде или я особенный и что-то не так установил? ;) (You can configure limits on the memory, CPU, and swap size allocated to WSL 2 in a .wslconfig file.)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Спросите в группе в телеграмме, ссылка в профиле

    • @korumika3798
      @korumika3798 Рік тому

      @@SeniorPomidorDeveloper точно, туплю)

  • @dadyx85
    @dadyx85 Рік тому

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

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

    • @dadyx85
      @dadyx85 Рік тому

      @@SeniorPomidorDeveloper Просто, после того как указали новый интерпретатор, вы ставили из файла рекомендаций джангу и куда он поставился? Ведь source venv/bin/activate вы не набирали.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

      Это просто PyCharm так работает что создает новый virtualenv и сразу его активирует . Добавлю субтитр , действительно, это не очевидно .

    • @dadyx85
      @dadyx85 Рік тому

      @@SeniorPomidorDeveloper спасибо. А то я сейчас усиленно изучаю Django на курсах яндекса))) . Плюс стараюсь смотреть все, что можно найти на данную тему. Запомнить, конечно, всё это - та ещё задача. У нас Докер тоже будет. Лучше заранее подготовлюсь, чтобы потом не плавать)))

    • @SergeyNevzorov89
      @SergeyNevzorov89 Рік тому +1

      С докером очень хорошо работает vscode, есть плагин и можно работать прямо из контейнера. Посмотрите )

  • @DimerD
    @DimerD 8 місяців тому

    Я правильно онял, если мы смонтировали Volume с локального компа в докер, то все изменеия и манипуляции, такие GET, POST, DELEТE, которые были применены в докере так же сохраняться и на локальном компе? Или все что было в докере, там и останеться, и при новлм запуске докер-композ нужно снова повторять эти действия?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  8 місяців тому +1

      Ну это все сохраняется в базе , которая в контейнере в докере и если их не удалять то все останется

    • @DimerD
      @DimerD 8 місяців тому

      @@SeniorPomidorDeveloper благодарю Вас за ответ. Извините за наглость. Обещаю, что это последний вопрос:)А есть возможность как то эти изменения сохранить на локальном компьютере?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  8 місяців тому +1

      Для этого можно запустить локальную базу и пробросить подключение к ней в докер . Иногда сами data файлы Postgres монтируют в докер. Не уверен как лучше сделать. Может достаточно просто дамп базы делать и локально его применять. Зависит от ваших целей

  • @SeliverstovMusic
    @SeliverstovMusic Рік тому

    А зачем писать в docker-compose 'sh -c "python... ' разве по умолчанию не применяется bash линукса?

  • @onesidemedia5043
    @onesidemedia5043 Рік тому +2

    Привет, спасибо за классный курс, у меня выходить ошибка такого рода - Permission denied: '/service/manage.py'
    При создании джанго проекта в 28:00 минуте, что делать?

    • @onesidemedia5043
      @onesidemedia5043 Рік тому

      думаю сто это из-за того что мы вручную создали папку service_app > service и теперь пользователь докера не может создавать файл или папки
      Но не понимаю как изменить права доступа.
      или это из-за другого кто знает????

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

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

    • @onesidemedia5043
      @onesidemedia5043 Рік тому

      @@SeniorPomidorDeveloper же 2 раз делал, я там даже не могу папку создать такой командой - docker compose run --rm web-app sh -c "mkdir -p newfilder"
      Пишет что Отказано в доступе.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Такое ощущение что сам докер не имеет доступа, к ресурсам которые он создает. Может его надо переустановить?
      Или может надо проставить права для той папки, которую мы монтируем в докер, скорее похоже на это.

    • @onesidemedia5043
      @onesidemedia5043 Рік тому

      @@SeniorPomidorDeveloper Попробую пере установить докер

  • @Jason-lk6gb
    @Jason-lk6gb 3 місяці тому

    Здраствуйте. На версии Django 4 будет работать?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  3 місяці тому +1

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

  • @rushanusmanov4850
    @rushanusmanov4850 9 місяців тому

    Привет, возникает такая ошибка при команде docker-compose build "line 2: did not find expected key"
    О чём это говорит?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  9 місяців тому

      Не знаю.. что-то на второй строке конфига. Может ошибка

  • @wissarius
    @wissarius Рік тому

    Что вы используете в качестве терминала? Он у вас разноцветный.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Да какой-то маковый стандартный

    • @nitroexpress9928
      @nitroexpress9928 Рік тому

      На Мак Ось недавно появился крутой терминал Warp, советую заценить

  • @nicksowl
    @nicksowl Рік тому

    Hello,
    При запуске docker-compose up я получаю вот такую ошибку -
    FATAL: password authentication failed for user "dbuser"
    DETAIL: Role "dbuser" does not exist.
    Кто-нибудь сталкивался? Спасибо

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

      Эти права должны быть прописаны в докер имедж. Может ни к тому простгресу подключается ?
      Сверьте код с репозиторием github.com/chepe4pi/service_app

  • @yadev3646
    @yadev3646 Рік тому +1

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

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

    • @avstudia2611
      @avstudia2611 Рік тому +1

      мне тоже интересно, получается под прод придется брать vps c 16 гигами, для маленького интернет-магазина как-то крутовато

    • @yadev3646
      @yadev3646 Рік тому

      @@avstudia2611 я тоже так думаю

    • @yadev3646
      @yadev3646 Рік тому

      @@SeniorPomidorDeveloper а конкретней можете ответить? сколько оперативки надо на проде? и сколько оперативки вы используете на своих прод серверах? а то как-то грустно от мысли что надо 16 гигов для хоста))

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +8

      В этом курсе я использую докер , по тому что без него было бы очень сложно показать celery , redis , Postgres и всю их связку. На продакшене их обычно разносят на разные сервера и каждому дают оперативки сколько нужно. Для маленького интернет магазина это вообще все не нужно, он нормально работает без докеров и селери, для такого кейса скорее подойдет курс «Джанго сервер на Linux».
      В любом случае, этот проект наверное и на двух гигах запустится, непонятно только какие нагрузки выдержит. Вообще это хорошая идея, записать видео про установку его на Linux сервере , я попробую что-то придумать такое .

  • @andreykuskov8807
    @andreykuskov8807 Рік тому

    Expose порт не открывает. Вот выдержка из самой документации: "Exposing ports is a way of documenting which ports are used, but does not actually map or open any ports. Exposing ports is optional".

  • @Pavel-er4hy
    @Pavel-er4hy Рік тому

    После установки докера всё время: Docker Desktop starting... (всё время грузится, но не прогружается)
    Установил на виндоус.
    Советы со стаковерфло не помогли... или я их неверно применил.
    У кого-то из учеников была подобная сложность?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Не знаю, никто пока про такое не писал . Можно спросить в группе в Телеграмме, ссылка в профиле .

    • @user-pj8ry5bc9x
      @user-pj8ry5bc9x 5 місяців тому

      Я долго мучалась с такой же проблемой, помогло только увеличение оперативки, сразу все заработало

  • @user-eo3dp5uj6s
    @user-eo3dp5uj6s 9 місяців тому

    При запуске docker-compose(команда docker-compose run --rm web-app sh -c "django-admin startproject service .") я получал ошибку - sh: django-admin: not found, поэтому я заменил команду на следующую - docker-compose run --rm web-app sh -c "python -m django startproject service ." Возможно это из-за того, что на windows.
    И я все равно не до конца понимаю как эта команда работает. Почему я создаю джанго проект в контейнере, а появляется он у меня локально, как это возможно?О_о

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  9 місяців тому

      Видимо по тому что директория из контейнера подмонтирована локально.

  • @kirillk335
    @kirillk335 Рік тому

    скинь плиз ссылку/названия монитора ресурсов

  • @danielohsleeper3765
    @danielohsleeper3765 Рік тому

    выскакивает ошибка постоянно. уже все перепробовал could not translate host name "database" to address что можно сделать?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

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

  • @YuriyLapunov
    @YuriyLapunov 7 місяців тому

    http: invalid Host header кто-то сталкивался с такой ошибкой при docker-compose build? Правда делаю не из докер-десктоп а из обычного (убунту 22.04)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  7 місяців тому

      Должно быть также на убунту . Можно в группе спросить. Ссылка в профиле

    • @YuriyLapunov
      @YuriyLapunov 7 місяців тому

      @@SeniorPomidorDeveloper спасибо, попробую там спросить)

  • @nurtileu_abdikhalyk
    @nurtileu_abdikhalyk Рік тому

    пишет вот такая ошибка: [5/7] RUN apk add postgresql-client build-base postgresql-dev:
    #9 0.432 /bin/sh: 1: apk: not found
    что делать?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Проверить что конфигурация докера написана без ошибок . Можно с моим кодом сверить github.com/chepe4pi/service_app/tree/day-9

  • @ProTon998
    @ProTon998 Рік тому

    А ты работаешь с FastAPI?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

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

  • @not_fox
    @not_fox 6 місяців тому

    failed to solve: process "/bin/sh -c pip install -r temp/req.txt" did not complete successfully: exit code: 1
    Почему такая ошибка возникает?

    • @not_fox
      @not_fox 6 місяців тому

      Ошибка бала из за моей не внимательностью
      берите кому, если не работает
      FROM python:3.10.7
      RUN mkdir /app
      WORKDIR /app
      COPY . /app/
      COPY req.txt /temp/
      RUN pip install --upgrade pip
      RUN pip install -r /temp/req.txt

  • @gonfrix9382
    @gonfrix9382 5 місяців тому

    requirements плагина сейчас нет в pycharm плагинах(

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  5 місяців тому

      Может это уже встроенный функционал. В любом случае, установить не сложно

  • @user-cy2gr8uc8p
    @user-cy2gr8uc8p Рік тому

    А как так выделить несколько файлов в пайчарме😮??

  • @gonfrix9382
    @gonfrix9382 5 місяців тому

    А почему нельзя создавать django приложение локально? Какие подводные?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  5 місяців тому

      Можно конечно. Во всех прошлых курсах так делал

  • @user-zh4ri8op1x
    @user-zh4ri8op1x 11 місяців тому

    Добрый день, нашел способ как поставить миграции без команды
    docker-compose run --rm web-app sh -c "python manage py migrate"
    т.е. без создания лишнего образа.
    Если добавить эту команду в docker-compose.yml
    web-app:
    build: .
    command: bash -c
    "python manage py migrate &&
    python manage py runserver 0 0 0 0 : 8000"
    миграции будут выполнены, если они нужны.
    Насколько этот способ имеет право на жизнь?
    ps. в командах надо добавить точки, а то боты удаляют мой комент:)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  11 місяців тому

      Да, почему бы и нет. Хороший способ. Это актуально именно для локальный разработки. Для продакшн мы в принципе не используем runserver

  • @user-or9hd4nj9z
    @user-or9hd4nj9z 2 місяці тому

    Когда запускаю Докер Билд выдает такую ошибку 'docker-compose' process finish with exit code 15
    Что это может быть, хоть где его искать?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Місяць тому

      Не понятно (

    • @user-or9hd4nj9z
      @user-or9hd4nj9z Місяць тому

      Вот с этой ошибкой не могу справиться
      File "/service/./manage.py", line 22, in
      main()
      File "/service/./manage.py", line 18, in main
      execute_from_command_line(sys.argv)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
      utility.execute()
      File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
      django.setup()
      File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
      apps.populate(settings.INSTALLED_APPS)
      File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 114, in populate
      app_config.import_models()
      File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 301, in import_models
      self.models_module = import_module(models_module_name)
      File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
      File "", line 1030, in _gcd_import
      File "", line 1007, in _find_and_load
      File "", line 986, in _find_and_load_unlocked
      File "", line 680, in _load_unlocked
      File "", line 850, in exec_module
      File "", line 228, in _call_with_frames_removed
      File "/service/services/models.py", line 11, in
      class Plan(models.Model):
      File "/service/services/models.py", line 14, in Plan
      ('student', 'Student')
      И что хочет, чтоб Я сделал.
      Как узнать,

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Місяць тому

      Там нижняя часть трейса ошибки не влезла. В ней ответ

    • @user-or9hd4nj9z
      @user-or9hd4nj9z Місяць тому

      Traceback (most recent call last):
      File "/service/./manage.py", line 22, in
      main()
      File "/service/./manage.py", line 18, in main
      execute_from_command_line(sys.argv)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
      utility.execute()
      File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
      django.setup()
      File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
      apps.populate(settings.INSTALLED_APPS)
      File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 114, in populate
      app_config.import_models()
      File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 301, in import_models
      self.models_module = import_module(models_module_name)
      File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
      File "", line 1030, in _gcd_import
      File "", line 1007, in _find_and_load
      File "", line 986, in _find_and_load_unlocked
      File "", line 680, in _load_unlocked
      File "", line 850, in exec_module
      File "", line 228, in _call_with_frames_removed
      File "/service/services/models.py", line 11, in
      class Plan(models.Model):
      File "/service/services/models.py", line 14, in Plan
      ('student', 'Student')
      TypeError: 'tuple' object is not callable
      NativeCommandExitException: Program "docker-compose.exe" ended with non-zero exit code: 1.
      Кортеж не может быть вызван!
      Я и не писал кортежей вроде бы.

    • @user-or9hd4nj9z
      @user-or9hd4nj9z Місяць тому

      Жаль тут в коментах нельзя вставлять скриншоты!

  • @user-or9hd4nj9z
    @user-or9hd4nj9z Місяць тому

    Не знаю у меня это ошибка или что , но дальше не идет!!!

  • @Sapsonbz
    @Sapsonbz Рік тому

    Как обновит pip? не могу поставить пакет Pillow

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Pip можно обновить через вашу ОС
      Но для установки pillow этого не нужно

    • @Sapsonbz
      @Sapsonbz Рік тому

      @@SeniorPomidorDeveloper а как поставить правильно pillow, он у меня ругается что нужно обновить pip. А pip не обновляется

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

      Это просто warring, можно не обращать внимание, ошибка в другом

  • @user-kn5ip9lr6r
    @user-kn5ip9lr6r 7 місяців тому

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  7 місяців тому

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

  • @pavels6563
    @pavels6563 Рік тому

    Народ, я посмотрел "мини-курс о django". Я могу смотреть этот курс, или лучше сначала пройти "бекенд на django"?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +1

      Лучше этот наверное сначала. Потом если что-то не заработает в курсе "бекенд на django" то можно просто взять из этого курса настройку в docker и дальше "бекенд на django" проходить на основе докера

    • @pavels6563
      @pavels6563 Рік тому

      @@SeniorPomidorDeveloper Спасибо!!!

  • @lI-bh5xt
    @lI-bh5xt Рік тому

    Сделайте отдельное видео куда размещать бизнес логику, чтобы не засорять view.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому +2

      В файл business_logic.py 😁
      Я серьезно. Именно так и делаем .

    • @lI-bh5xt
      @lI-bh5xt Рік тому

      @@SeniorPomidorDeveloper есть такое поняте как Service object, в django есть такое?

    • @lI-bh5xt
      @lI-bh5xt Рік тому

      @@SeniorPomidorDeveloper в каком видео вы показываетет как это делается?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Уже не помню, может и не показываю. Там особо и нечего показывать. Есть логика - создаем для нее функцию или класс

  • @pretcb
    @pretcb Рік тому

    +

  • @fedor_ado
    @fedor_ado Рік тому

    Вот смотришь курсы, уроки на просторах ютуба и диву даёшься сколько нагенерили начал. У гугла целая страна, наверное, выделена под хранение как установить докер, как открыть командную строку итд. :)

  • @nitroexpress9928
    @nitroexpress9928 Рік тому

    То, что докер кэширует дофига свободной памяти- это особенность его работы на Мак ОС, на линуксе например он практически ничего не жрёт.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Это в конфиге docker можно проставить . Если у мака то в конфиге docker desktop, Хоть 1гб , но будет ли работать неизвестно.

    • @nitroexpress9928
      @nitroexpress9928 Рік тому

      @@SeniorPomidorDeveloper я думаю смысла особого нет - он у меня на маке с 8гб памяти забивает всё под 0, если по диспетчеру задач смотреть, но на производительности компьютера это никак не сказывается.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper  Рік тому

      Да, он просто берет все , что ему дают )

  • @Aim300
    @Aim300 7 місяців тому

    Кто-то: и так да это сложно но мы начнем изучать докер, я создам базовый 4х часовой курс для введения и вы все поймёте
    Сеньор: (между делом понятно объясняет, так что можно с этим и работать, но естественно не останавливаться)
    😅

  • @airguy5964
    @airguy5964 Рік тому

    34