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

  Рет қаралды 29,101

Senior Pomidor Developer

Senior Pomidor Developer

Күн бұрын

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 Жыл бұрын
Если позволите, то небольшой совет. В докер-файле копировать код, который вы пишите, а значит он меняется, лучше перед самым запуском питона. Иначе у вас при каждом изменении кода, во время билда контейнера, будут пакеты качаться и ставиться заново. А если их поставить выше копирования кода, то слой с пакетами будет использоваться из предыдущего билда и деплой новой версии будет быстрее. Это, кстати, тоже касается вопроса оптимизации, правда деплоя, а не работы приложения.
@user-dz6et7mf6l
@user-dz6et7mf6l Жыл бұрын
Привет! Если тебе не сложно можешь подробнее описать что и куда надо переставить в докерфайле, чтобы слои не переписывать?
@shakhzodme
@shakhzodme Жыл бұрын
@@user-dz6et7mf6l он имеет ввиду после COPY requirements.txt /temp/requirements.txt (строка 3) сразу устанавливать зависимости(строка 8, 10, 12), потому что каждый раз когда меняется код, докер это автоматом понимает по хеш суммам и начинает выполнение с строки 4, так как именно там мы копируем все исходники проекта, соответственно начинается выполнение строки 8 и т.д.
@user-qp8of2vk9y
@user-qp8of2vk9y Жыл бұрын
@@shakhzodme именно. Т.е. строку с 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 Жыл бұрын
Самый лучший урок по Докер+Джанго на Ютубе(включая англоговорящий) для новичков.
@geniculata_spider
@geniculata_spider Жыл бұрын
Как я ждал твои видео)))очень понятно объясняешь, спасибо за твой труд
@user-vl1el8bp7y
@user-vl1el8bp7y Жыл бұрын
Спасибо! Курс как и все предидущие - супер!
@user-de9xw2bi8p
@user-de9xw2bi8p Жыл бұрын
Шикарное видео , альтернативы на просторах не встречал ! Спасибо вам большое за такие ценные знания
@godgive994
@godgive994 11 ай бұрын
От души! Посмотрел твои предыдущие курсы по джанго. Формат, подача идеальны!
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 11 ай бұрын
Спасибо
@user-qp8of2vk9y
@user-qp8of2vk9y Жыл бұрын
Контейнеры, которые пришлось удалять - это имеджы от предыдущих билдов. Каждый новый билд делает новый имедж и из него запускает контейнеры, а старые имеджи остаются висеть. Чистится через docker prune. Ключ --rm удаляет контейнеры после остановки, но не собранные имеджи
@good_royal_guy
@good_royal_guy Жыл бұрын
блин, какой ты классный, хорошо объясняешь, прям услада для ушей👍
@korumika3798
@korumika3798 Жыл бұрын
Классный свет и новая камера, прям летняя атмосфера, смотреть еще приятнее :)!
@dmitriivanov7010
@dmitriivanov7010 Жыл бұрын
Спасибо Сеньору Помидору, это лучшее видео по Докеру
@alexblast3292
@alexblast3292 Жыл бұрын
Спасибо огромное за контент. Пожалуйста продолжай развивать канал.
@user-pd7vq6io8h
@user-pd7vq6io8h Жыл бұрын
Классный урок по запуску Django в Docker, всё получилось!
@marsminerstone5504
@marsminerstone5504 Жыл бұрын
Спасибо большое, это очень полезный ролик!
@smerrch
@smerrch Жыл бұрын
Большое Вам спасибо за курс!
@Alekseyild
@Alekseyild Жыл бұрын
Качество контента как всегда на уровне
@user-pn7ts7wg5e
@user-pn7ts7wg5e Жыл бұрын
Это то, что мне так долго не хватало. Большое тебе спасибо, обнял.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
🤗
@viktorpryima2994
@viktorpryima2994 Жыл бұрын
Огромные слова благодарности за ту работу, которую вы проделали!!! Вы один из тех спикеров, благодаря кому я работаю с технологиями и фреймворками о которых вы рассказываете. Если есть возможность, (очень актуально....) можете рассказать как использовать интерпритатор python при разработке через docker-compose в IDE PyCharm Professional. Еще раз благодарю!!!!
@Andrey_Fedorov
@Andrey_Fedorov Жыл бұрын
Очень круто! Огромное спасибо!
@GRIMEANARCHY
@GRIMEANARCHY Жыл бұрын
Пушка будет, то что надо) Ждем :)
@Rulezzz3
@Rulezzz3 7 ай бұрын
Случайно наткнулся на этот канал, когда возникла нужда добавить Celery в Django. Ведущий очень понравился. Такое чувство, что смотрю Варламова, только гораздо улучшенную его версию: спокойная и грамотная речь. Особенно мне нравится как в режиме онлайн он кодит, мне как новичку становится гораздо легче, так как вижу как сеньор это делает подглядывая на второй экран, значит и я не должен помнить синтаксис всего наизусть
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
Спасибо! 😁 второй экран это я докер конфигурацию плохо помню, ну и примеры кода смотрю, которые буду делать. Синтаксис питона я конечно помню )
@Bibliophilos
@Bibliophilos Жыл бұрын
Спасибо за урок!
@user-tf9ku1xx7x
@user-tf9ku1xx7x Жыл бұрын
свежий видосик = свежий лайк
@andrewv8350
@andrewv8350 3 ай бұрын
Боже храни Сеньора Помидора! =) Великолепный контент!
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 3 ай бұрын
🙏
@Developer_python_
@Developer_python_ Жыл бұрын
Люто плюсую)
@koloboopsik
@koloboopsik Жыл бұрын
Топчик, спасибо за урок
@a98cb985
@a98cb985 Жыл бұрын
И снова оч спасибо!
@korumika3798
@korumika3798 Жыл бұрын
Вот начал 3 курс. Вспоминаю 1 запуск 1го видео "Блин, ааааааа, как же нудно он говорит!". Я тогда не осознавал и только на втором курсе понял, что это мой мозг подвергается правильной нагрузке. Это реальная учеба, а не видео из разряда "Йоу йоу йоу и сегодня мы изучим машинное обучение за 13 секунд!". На втором курсе я настолько преисполнился, что материал начал восприниматься не "нудно", а даже слишком быстро "эйэй, подожди, не успеваю!". Не устану писать как и все благодарности за курс, полностью на русском, получить бесплатно столько материала , который подается в формате "Ученик-репетитор", лучший !:)
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Спасибо за такой отзыв. Никогда не задумавшая что может быть такое разное восприятие и как оно меняется . Очень интересно было почитать !
@Name-ko3qb
@Name-ko3qb Жыл бұрын
Классная штука docker
@IslamMamedow
@IslamMamedow Жыл бұрын
Спасибо, то что искал
@archibaldivanovich4103
@archibaldivanovich4103 Жыл бұрын
Огромное спасибо!
@igorkulibaba7287
@igorkulibaba7287 Жыл бұрын
ОООО крутяк💪
@koshakpoc2876
@koshakpoc2876 Жыл бұрын
Вот сеньор и подвёз годного контента
@Artem36
@Artem36 Жыл бұрын
Улёт ⚡
@sergiybustrov8831
@sergiybustrov8831 7 ай бұрын
Спасибо тебе!
@alkha7144
@alkha7144 Жыл бұрын
В поддержку.
@MyFearIsMyBlue
@MyFearIsMyBlue Жыл бұрын
Отдельное спасибо за DB_HOST=database. Никак не удавалось сбридждить приложение и postgres, кроме как через наружний ip. Ни localhost, ни четыре нуля, ни ip контейнера не работали. А тут завелось без прокидвания порта бд наружу!
@jamjam3337
@jamjam3337 3 ай бұрын
спасибо!👏👍
@instigatorable
@instigatorable Жыл бұрын
Лишние контейнеры создаются из-за того что вы используете команду в докере команду 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.
@Developer_python_
@Developer_python_ 8 ай бұрын
У меня не создаются
@user-sh3wb1cy5f
@user-sh3wb1cy5f 6 ай бұрын
Спасибо большое! Я не верил что мне, новичку, получиться по этому видео развернуть свой проект на докер. Конечно, пришлось по пути исправлять кучу ошибок и делать по интуиции в некоторых местах, но всё равно получилось! Осталось разобраться с Celery...
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 6 ай бұрын
Спасибо за отзыв! Такая у нас специфика работы, исправлять кучу ошибок и иногда делать по интуиции)
@dmitrymikhailovnicepianomu8688
@dmitrymikhailovnicepianomu8688 Жыл бұрын
Спасибо
@noname52rus
@noname52rus 8 ай бұрын
спасибо!
@user-np6lh1pi9i
@user-np6lh1pi9i Жыл бұрын
У тех у кого уже есть локально 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? правда мне ничего не помогало, пришлось удалить все контейнеры, снести с компа локальный постгрес, и только после этого все сработало.
@alikust
@alikust 10 ай бұрын
docker-compose exec web-app python manage-py migrate - Миграции можно и так накатить. (тире на точку поменяйте, Туб ссылки удаляет) Автору низкий поклон 🙏
@tynnikov
@tynnikov 9 ай бұрын
Во-первых, спасибо за уроки! Во-вторых, подскажи пожалуйста название утилиты, которая следит за использованием оперативной памяти?
@mcaq1
@mcaq1 Жыл бұрын
Ждем следующий урок! Можно было бы по 2 в день сразу)
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
да их не так много вцелом) быстро тогда закончатся )
@mcaq1
@mcaq1 Жыл бұрын
@@SeniorPomidorDeveloper а сколько всего уроков?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
10
@Artem36
@Artem36 Жыл бұрын
@@SeniorPomidorDeveloper может это звучит нагло, но с твоим умением объяснять и подавать материал хотелось бы увидеть больше контента))
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Больше за деньги)
@user-tm2gc3fg1m
@user-tm2gc3fg1m 6 ай бұрын
отличное видео, но на 40:28 можно было просто нажать Configure Python interpreter в углу, сам пайчарм подсказывал)
@Chel1k7
@Chel1k7 11 ай бұрын
top
@ibrahimoglu
@ibrahimoglu Жыл бұрын
👍
@wissarius
@wissarius Жыл бұрын
Вопрос: Обязательна ли команда "RUN apk add postgresql-client build-base postgresql-dev" в "Dockerfile", если у нас по сути есть описание конфигураций внутри "docker-compose.yml?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Вот проверьте и напишите нам
@tweak1207
@tweak1207 Жыл бұрын
Сеньор, подскажи пожалуйста, а БД обязательно в контейнер заворачивать? что если у меня на хосте уже есть БД и я хочу использовать ее
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Не обязательно. Можно использовать локальную.
@glebomarov2841
@glebomarov2841 6 ай бұрын
@Senior Pomidor Developer, добрый день. У меня все завелось, спасибо большое за это видео. Однако, после docker-compose down и последующего docker-compose up пропадают все юзеры, которых я создал в предыдущую сессию включая суперюзера. ЧЯДНТ? Нужно колдовать с volume?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 6 ай бұрын
Эээ. Не помню. Надо спросить у нас в чате, ссылка в профиле
@glebomarov2841
@glebomarov2841 6 ай бұрын
@@SeniorPomidorDeveloper Понял. Я думал, команда down остонавливает контейнер, а она его вообще удаляет. Неудивительно, что данные стираются 🙂
@aidosatayev1333
@aidosatayev1333 Жыл бұрын
какое приложение используете для мониторинга памяти?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
iStat Menus
@sergkuksov
@sergkuksov Жыл бұрын
Спасибо за уроки. Можно ещё урок или подсказку как задеплоить докер контейнер и как его запускать правильно? Наверное нужно что вроде связки с nginx?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Докер на сервере это отдельная тема для еще одного большого видео.
@dodokwak
@dodokwak Жыл бұрын
Спасибо огромное. p.s. эти images none создаются и без джанги ( использовала express from js). Руки не доходят разобраться, почему они плодятся.
@Pavel-er4hy
@Pavel-er4hy Жыл бұрын
Добрый день! Подскажите, пожалуйста, название программы для мониторинга оперативной памяти для Виндоус?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Добрый день! Для windows , к сожалению, не знаю
@gaunter_o_d1mm
@gaunter_o_d1mm Жыл бұрын
Я бы всё таки советовал использовать дебиан образ для Докерфайла, понятно что он ест больше памяти, но в то же время он и работает намного быстрее, это сейчас у вас просто базовая Джанго, а если в ней будет 20+ зависимостей, то и устанавливаться они будут по 3-5 минут, это если вы alpine образ используете, а с дебиан образом всё устанавливается намного быстрее и вроде как асинхронно, то есть не каждый образ по порядку, а несколько одновременно.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Ок. Интересное замечание!
@user-or9ks2ck5w
@user-or9ks2ck5w 7 ай бұрын
Здравствуйте. Подскажите, пожалуйста, что у вас за папка temp? это новая папка для проекта?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
Эээ. Блин, уже не помню. Обычно temp это значит temporary, то есть временные файлы , которые нужны для какой -то операции, а пооом можно удалить
@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 стоял, так что наверное да, бд подхватилась из-за этого. Спасибо!
@ocean6305
@ocean6305 Жыл бұрын
Возник вопрос, а где лежит база postgres? Она же не за бэндмаучена, это значит что контейнер остановится и все данные слетят. Или я что то пропустил. Можно пояснить? Есть bind mount для Django только)
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Не слетит если контейнер остановить или перезапустить. Курс же записан , каким-то образом. По хорошему, надо было тоже сделать mount, но курс не по докеру и я не придал значение. Тему обсуждали в группе в телеграмме. Можно там почитать
@mikhaillermontov8228
@mikhaillermontov8228 Жыл бұрын
Ссылка на гит будет ? Или чтобы повторить нужно перепечатывать?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Есть github.com/chepe4pi/service_app
@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".
@user-qd9vy1em1d
@user-qd9vy1em1d Жыл бұрын
Добрый день! подскажите, пожалуйста, с какого видео начать изучать джанго? У вас их так много. Для самого начинающего.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Добрый день! Ну старые курсы , конкретно для начинающих, будут проще. Это которые с белой и синей обложкой. Но там проблема в том, что устарели некоторые библиотеки и кое-что работать не будет ( Если начинать с этого то все будет работать отлично. Наверно с этого начинайте , а дальше лучше вернитесь старые. Может у вас получится сделать их на основе этого проекта из нового курса
@MrCipec
@MrCipec Жыл бұрын
Советую сначала канал selfedu (джанго+рест), потом помидора можно посмотреть, т.к. у него меньше объяснений и в целом более продвинутая инфа
@Play-fs9gv
@Play-fs9gv Жыл бұрын
Не очень понял вот что - зачем в докер файле команда копирования папки service внутрь контейнера если в композе все равно монтируем на это место готовую внешнюю папку?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Хороший вопрос! Это был первоначальный план , думаю что и без этого должно работать , если только монтировать
@vladvlad3544
@vladvlad3544 Жыл бұрын
Есть ли существенная разница между alpine или debian/oracle? Вместо PostgreSQL хочу MySQL взять, так как с ней больше знаком, а альпайн там нет в доступных тэгах
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Можно любую SQL базу брать, у которой есть драйвер для Джанго. На ORM все выглядит одинаково, никакой разницы не почувствуете (кроме некоторых продвинутых функций, которые крайне редко используются) Можно debían конечно. Но есть небольшой риск , что если что-то делать не так , как в курсе , то где-то может быть другой результат или какие-то новые проблемы, которые нужно будет решить самостоятельно
@vladvlad3544
@vladvlad3544 Жыл бұрын
@@SeniorPomidorDeveloper понял, попробую значит debian, а если будут ошибки и придется искать решения, то это тоже часть учебного процесса)
@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 Жыл бұрын
Напишите в группу в телеграмме, ссылка в профиле. может там помогут , у кого-то была похожая проблема .
@user-ii2sq9cq3y
@user-ii2sq9cq3y 6 ай бұрын
Привет SPD, а не подскажите почему папка из созданного приложения в докере может не отображаться в пайчарме?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 6 ай бұрын
Хм. Видимо по тому что она осталась в контейнере .
@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 и + тему, которая поддерживают такую фичу.
@SeliverstovMusic
@SeliverstovMusic Жыл бұрын
А зачем писать в docker-compose 'sh -c "python... ' разве по умолчанию не применяется bash линукса?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Просто скопипастил )
@dadyx85
@dadyx85 Жыл бұрын
А когда вы создаёте новый интерпретатор для подсветки синтаксиса и потом устанавливаете зависимости, они глобально ставятся или в виртуальное окружение?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Ну если я создаю новый интерпретатор, то зависимости только для него и ставятся. Но же новый, а глобальный у меня старый. Глобальный мы не можем создать , только скачать и установить можем .
@dadyx85
@dadyx85 Жыл бұрын
@@SeniorPomidorDeveloper Просто, после того как указали новый интерпретатор, вы ставили из файла рекомендаций джангу и куда он поставился? Ведь source venv/bin/activate вы не набирали.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Это просто PyCharm так работает что создает новый virtualenv и сразу его активирует . Добавлю субтитр , действительно, это не очевидно .
@dadyx85
@dadyx85 Жыл бұрын
@@SeniorPomidorDeveloper спасибо. А то я сейчас усиленно изучаю Django на курсах яндекса))) . Плюс стараюсь смотреть все, что можно найти на данную тему. Запомнить, конечно, всё это - та ещё задача. У нас Докер тоже будет. Лучше заранее подготовлюсь, чтобы потом не плавать)))
@SergeyNevzorov89
@SergeyNevzorov89 Жыл бұрын
С докером очень хорошо работает vscode, есть плагин и можно работать прямо из контейнера. Посмотрите )
@wissarius
@wissarius Жыл бұрын
Что вы используете в качестве терминала? Он у вас разноцветный.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Да какой-то маковый стандартный
@nitroexpress9928
@nitroexpress9928 Жыл бұрын
На Мак Ось недавно появился крутой терминал Warp, советую заценить
@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 точно, туплю)
@onesidemedia5043
@onesidemedia5043 Жыл бұрын
Привет, спасибо за классный курс, у меня выходить ошибка такого рода - 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 Попробую пере установить докер
@nicksowl
@nicksowl Жыл бұрын
Hello, При запуске docker-compose up я получаю вот такую ошибку - FATAL: password authentication failed for user "dbuser" DETAIL: Role "dbuser" does not exist. Кто-нибудь сталкивался? Спасибо
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Эти права должны быть прописаны в докер имедж. Может ни к тому простгресу подключается ? Сверьте код с репозиторием github.com/chepe4pi/service_app
@DimerD
@DimerD 9 ай бұрын
Я правильно онял, если мы смонтировали Volume с локального компа в докер, то все изменеия и манипуляции, такие GET, POST, DELEТE, которые были применены в докере так же сохраняться и на локальном компе? Или все что было в докере, там и останеться, и при новлм запуске докер-композ нужно снова повторять эти действия?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 9 ай бұрын
Ну это все сохраняется в базе , которая в контейнере в докере и если их не удалять то все останется
@DimerD
@DimerD 9 ай бұрын
@@SeniorPomidorDeveloper благодарю Вас за ответ. Извините за наглость. Обещаю, что это последний вопрос:)А есть возможность как то эти изменения сохранить на локальном компьютере?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 9 ай бұрын
Для этого можно запустить локальную базу и пробросить подключение к ней в докер . Иногда сами data файлы Postgres монтируют в докер. Не уверен как лучше сделать. Может достаточно просто дамп базы делать и локально его применять. Зависит от ваших целей
@Jason-lk6gb
@Jason-lk6gb 3 ай бұрын
Здраствуйте. На версии Django 4 будет работать?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 3 ай бұрын
Да будет конечно , может какие-то минимальные корректировки нужны будут, может нет. Там мало времени прошло, наверное ничего не изменилось
@rushanusmanov4850
@rushanusmanov4850 9 ай бұрын
Привет, возникает такая ошибка при команде docker-compose build "line 2: did not find expected key" О чём это говорит?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 9 ай бұрын
Не знаю.. что-то на второй строке конфига. Может ошибка
@ProTon998
@ProTon998 Жыл бұрын
А ты работаешь с FastAPI?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
На работе нет. В вообще с разными штуками люблю экспериментировать
@Pavel-er4hy
@Pavel-er4hy Жыл бұрын
После установки докера всё время: Docker Desktop starting... (всё время грузится, но не прогружается) Установил на виндоус. Советы со стаковерфло не помогли... или я их неверно применил. У кого-то из учеников была подобная сложность?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Не знаю, никто пока про такое не писал . Можно спросить в группе в Телеграмме, ссылка в профиле .
@user-pj8ry5bc9x
@user-pj8ry5bc9x 5 ай бұрын
Я долго мучалась с такой же проблемой, помогло только увеличение оперативки, сразу все заработало
@danielohsleeper3765
@danielohsleeper3765 Жыл бұрын
выскакивает ошибка постоянно. уже все перепробовал could not translate host name "database" to address что можно сделать?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Зайдите в телеграмм канал , ссылка в профиле. Вроде обсуждали такое
@yadev3646
@yadev3646 Жыл бұрын
Докер прожорливый только на dev сервере или на проде тоже потребуется не меньше 8 гигов оперативки, чтобы запустить такую сборку?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Не пробовал запускать с малым количеством оперативки , наверное как-то работать будет.
@avstudia2611
@avstudia2611 Жыл бұрын
мне тоже интересно, получается под прод придется брать vps c 16 гигами, для маленького интернет-магазина как-то крутовато
@yadev3646
@yadev3646 Жыл бұрын
@@avstudia2611 я тоже так думаю
@yadev3646
@yadev3646 Жыл бұрын
@@SeniorPomidorDeveloper а конкретней можете ответить? сколько оперативки надо на проде? и сколько оперативки вы используете на своих прод серверах? а то как-то грустно от мысли что надо 16 гигов для хоста))
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
В этом курсе я использую докер , по тому что без него было бы очень сложно показать celery , redis , Postgres и всю их связку. На продакшене их обычно разносят на разные сервера и каждому дают оперативки сколько нужно. Для маленького интернет магазина это вообще все не нужно, он нормально работает без докеров и селери, для такого кейса скорее подойдет курс «Джанго сервер на Linux». В любом случае, этот проект наверное и на двух гигах запустится, непонятно только какие нагрузки выдержит. Вообще это хорошая идея, записать видео про установку его на Linux сервере , я попробую что-то придумать такое .
@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
@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
@user-eo3dp5uj6s
@user-eo3dp5uj6s 10 ай бұрын
При запуске 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 10 ай бұрын
Видимо по тому что директория из контейнера подмонтирована локально.
@YuriyLapunov
@YuriyLapunov 7 ай бұрын
http: invalid Host header кто-то сталкивался с такой ошибкой при docker-compose build? Правда делаю не из докер-десктоп а из обычного (убунту 22.04)
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
Должно быть также на убунту . Можно в группе спросить. Ссылка в профиле
@YuriyLapunov
@YuriyLapunov 7 ай бұрын
@@SeniorPomidorDeveloper спасибо, попробую там спросить)
@gonfrix9382
@gonfrix9382 5 ай бұрын
requirements плагина сейчас нет в pycharm плагинах(
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 5 ай бұрын
Может это уже встроенный функционал. В любом случае, установить не сложно
@kirillk335
@kirillk335 Жыл бұрын
скинь плиз ссылку/названия монитора ресурсов
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
istat menus
@gonfrix9382
@gonfrix9382 5 ай бұрын
А почему нельзя создавать django приложение локально? Какие подводные?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 5 ай бұрын
Можно конечно. Во всех прошлых курсах так делал
@lI-bh5xt
@lI-bh5xt Жыл бұрын
Сделайте отдельное видео куда размещать бизнес логику, чтобы не засорять view.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
В файл business_logic.py 😁 Я серьезно. Именно так и делаем .
@lI-bh5xt
@lI-bh5xt Жыл бұрын
@@SeniorPomidorDeveloper есть такое поняте как Service object, в django есть такое?
@lI-bh5xt
@lI-bh5xt Жыл бұрын
@@SeniorPomidorDeveloper в каком видео вы показываетет как это делается?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Уже не помню, может и не показываю. Там особо и нечего показывать. Есть логика - создаем для нее функцию или класс
@user-cy2gr8uc8p
@user-cy2gr8uc8p Жыл бұрын
А как так выделить несколько файлов в пайчарме😮??
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Через shift ?
@fedor_ado
@fedor_ado Жыл бұрын
Вот смотришь курсы, уроки на просторах ютуба и диву даёшься сколько нагенерили начал. У гугла целая страна, наверное, выделена под хранение как установить докер, как открыть командную строку итд. :)
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
А куда без этого...
@user-or9hd4nj9z
@user-or9hd4nj9z 2 ай бұрын
Не знаю у меня это ошибка или что , но дальше не идет!!!
@user-or9hd4nj9z
@user-or9hd4nj9z 2 ай бұрын
Когда запускаю Докер Билд выдает такую ошибку 'docker-compose' process finish with exit code 15 Что это может быть, хоть где его искать?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 2 ай бұрын
Не понятно (
@user-or9hd4nj9z
@user-or9hd4nj9z 2 ай бұрын
Вот с этой ошибкой не могу справиться 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 2 ай бұрын
Там нижняя часть трейса ошибки не влезла. В ней ответ
@user-or9hd4nj9z
@user-or9hd4nj9z 2 ай бұрын
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 2 ай бұрын
Жаль тут в коментах нельзя вставлять скриншоты!
@pavels6563
@pavels6563 Жыл бұрын
Народ, я посмотрел "мини-курс о django". Я могу смотреть этот курс, или лучше сначала пройти "бекенд на django"?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Лучше этот наверное сначала. Потом если что-то не заработает в курсе "бекенд на django" то можно просто взять из этого курса настройку в docker и дальше "бекенд на django" проходить на основе докера
@pavels6563
@pavels6563 Жыл бұрын
@@SeniorPomidorDeveloper Спасибо!!!
@pretcb
@pretcb Жыл бұрын
+
@user-kn5ip9lr6r
@user-kn5ip9lr6r 7 ай бұрын
Не совсем в тему. Мне вот просто интересно, вы, как опытный разработчик, помните все эти команды для докерфайл или докер-композ? Или у вас просто шпаргалка, откуда их можно взять и быстро развернуть приложение?
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
Какие-то помню , но в основном из шпаргалки смотрел . На работе мы практически не используем докер, по этому плохо запоминаются . Все что касается Джанго и следующих видео , почти все по памяти писал, так как часто использую
@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
@nitroexpress9928
@nitroexpress9928 Жыл бұрын
То, что докер кэширует дофига свободной памяти- это особенность его работы на Мак ОС, на линуксе например он практически ничего не жрёт.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Это в конфиге docker можно проставить . Если у мака то в конфиге docker desktop, Хоть 1гб , но будет ли работать неизвестно.
@nitroexpress9928
@nitroexpress9928 Жыл бұрын
@@SeniorPomidorDeveloper я думаю смысла особого нет - он у меня на маке с 8гб памяти забивает всё под 0, если по диспетчеру задач смотреть, но на производительности компьютера это никак не сказывается.
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Да, он просто берет все , что ему дают )
@Sapsonbz
@Sapsonbz Жыл бұрын
Как обновит pip? не могу поставить пакет Pillow
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Pip можно обновить через вашу ОС Но для установки pillow этого не нужно
@Sapsonbz
@Sapsonbz Жыл бұрын
@@SeniorPomidorDeveloper а как поставить правильно pillow, он у меня ругается что нужно обновить pip. А pip не обновляется
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper Жыл бұрын
Это просто warring, можно не обращать внимание, ошибка в другом
@Aim300
@Aim300 7 ай бұрын
Кто-то: и так да это сложно но мы начнем изучать докер, я создам базовый 4х часовой курс для введения и вы все поймёте Сеньор: (между делом понятно объясняет, так что можно с этим и работать, но естественно не останавливаться) 😅
@SeniorPomidorDeveloper
@SeniorPomidorDeveloper 7 ай бұрын
😁
@airguy5964
@airguy5964 Жыл бұрын
34
Docker за 20 минут
21:42
suchkov tech
Рет қаралды 58 М.
Китайка и Пчелка 4 серия😂😆
00:19
KITAYKA
Рет қаралды 3 МЛН
They RUINED Everything! 😢
00:31
Carter Sharer
Рет қаралды 17 МЛН
100❤️
00:20
Nonomen ノノメン
Рет қаралды 62 МЛН
Оптимизация Django. 5 - Celery + Docker
30:31
Senior Pomidor Developer
Рет қаралды 14 М.
Deploying Django with Docker Compose
2:24:50
London App Developer
Рет қаралды 86 М.
Docker с 0 до 100%. Всё, что нужно знать.
5:08:24
Docker - nginx, php-fpm, mysql, phpmyadmin. From scratch to finished website
50:07
DanilovCode - Уроки PHP, Yii2
Рет қаралды 19 М.