Если позволите, то небольшой совет. В докер-файле копировать код, который вы пишите, а значит он меняется, лучше перед самым запуском питона. Иначе у вас при каждом изменении кода, во время билда контейнера, будут пакеты качаться и ставиться заново. А если их поставить выше копирования кода, то слой с пакетами будет использоваться из предыдущего билда и деплой новой версии будет быстрее. Это, кстати, тоже касается вопроса оптимизации, правда деплоя, а не работы приложения.
@МихаилСемерухин Жыл бұрын
Привет! Если тебе не сложно можешь подробнее описать что и куда надо переставить в докерфайле, чтобы слои не переписывать?
@shakhzodme Жыл бұрын
@@МихаилСемерухин он имеет ввиду после COPY requirements.txt /temp/requirements.txt (строка 3) сразу устанавливать зависимости(строка 8, 10, 12), потому что каждый раз когда меняется код, докер это автоматом понимает по хеш суммам и начинает выполнение с строки 4, так как именно там мы копируем все исходники проекта, соответственно начинается выполнение строки 8 и т.д.
@СтаниславРассказов-ы4м Жыл бұрын
@@shakhzodme именно. Т.е. строку с COPY service .... передвинуть максимально вниз по логике действий, т.к. строки выполняются по порядку и всё что может не выполняться, а быть взято из кэша, будет взято из кэша. А самое долгое по времени выполнения при последующих деплоях, это строка с pip install ... Её лучше ставить выше Copy service, но ниже Copy requairements ..... И ничего выше них не. Должно меняться при билде новых версий, тогда пакеты не будут качаться каждый раз
@СтаниславРассказов-ы4м Жыл бұрын
@@rocky-04 что за ошибка? На каком шаге возникает?
@СтаниславРассказов-ы4м Жыл бұрын
@@rocky-04 попробуйте собрать на базовом образе не alpine. На нем у меня при установке дополнительных пакетов бывали случаи, когда не стартовал питон. Например, python3.9-slim.
@mcaq1 Жыл бұрын
Самый лучший урок по Докер+Джанго на Ютубе(включая англоговорящий) для новичков.
@Rulezzz3 Жыл бұрын
Случайно наткнулся на этот канал, когда возникла нужда добавить Celery в Django. Ведущий очень понравился. Такое чувство, что смотрю Варламова, только гораздо улучшенную его версию: спокойная и грамотная речь. Особенно мне нравится как в режиме онлайн он кодит, мне как новичку становится гораздо легче, так как вижу как сеньор это делает подглядывая на второй экран, значит и я не должен помнить синтаксис всего наизусть
@SeniorPomidorDeveloper Жыл бұрын
Спасибо! 😁 второй экран это я докер конфигурацию плохо помню, ну и примеры кода смотрю, которые буду делать. Синтаксис питона я конечно помню )
@АнтонКородян Жыл бұрын
Шикарное видео , альтернативы на просторах не встречал ! Спасибо вам большое за такие ценные знания
@СтаниславРассказов-ы4м Жыл бұрын
Контейнеры, которые пришлось удалять - это имеджы от предыдущих билдов. Каждый новый билд делает новый имедж и из него запускает контейнеры, а старые имеджи остаются висеть. Чистится через docker prune. Ключ --rm удаляет контейнеры после остановки, но не собранные имеджи
@ВиталийКоновалов-г1ц Жыл бұрын
Спасибо! Курс как и все предидущие - супер!
@korumika3798 Жыл бұрын
Вот начал 3 курс. Вспоминаю 1 запуск 1го видео "Блин, ааааааа, как же нудно он говорит!". Я тогда не осознавал и только на втором курсе понял, что это мой мозг подвергается правильной нагрузке. Это реальная учеба, а не видео из разряда "Йоу йоу йоу и сегодня мы изучим машинное обучение за 13 секунд!". На втором курсе я настолько преисполнился, что материал начал восприниматься не "нудно", а даже слишком быстро "эйэй, подожди, не успеваю!". Не устану писать как и все благодарности за курс, полностью на русском, получить бесплатно столько материала , который подается в формате "Ученик-репетитор", лучший !:)
@SeniorPomidorDeveloper Жыл бұрын
Спасибо за такой отзыв. Никогда не задумавшая что может быть такое разное восприятие и как оно меняется . Очень интересно было почитать !
@geniculata_spider Жыл бұрын
Как я ждал твои видео)))очень понятно объясняешь, спасибо за твой труд
@dmitriivanov7010 Жыл бұрын
Спасибо Сеньору Помидору, это лучшее видео по Докеру
docker-compose exec web-app python manage-py migrate - Миграции можно и так накатить. (тире на точку поменяйте, Туб ссылки удаляет) Автору низкий поклон 🙏
@АлиханАзар Жыл бұрын
У тех у кого уже есть локально postgres, то может возникнуть ошибка c портами(ведь 5432 уже занят). Для решение этой проблемы в приложение database добавьте ports: - "5433:5432"
@tweak1207 Жыл бұрын
Надо при этом где-то в compose переменных или еще где-то ставить 5433?
@russul2700 Жыл бұрын
@@tweak1207 нет только в docker-compose пропиши. Потом по новому docker-compose up запускаешь, еще заново миграции не забудь сделать.
@vot_eto_Canada Жыл бұрын
Спасибо тебе большое )
@understandwhat Жыл бұрын
Спасибо огромное!
@Фома-ж7я Жыл бұрын
@@russul2700 а разве не нужно в сеттингсах самой джанги в настройках БД прописать порт 5433? правда мне ничего не помогало, пришлось удалить все контейнеры, снести с компа локальный постгрес, и только после этого все сработало.
@alexblast3292 Жыл бұрын
Спасибо огромное за контент. Пожалуйста продолжай развивать канал.
@viktorpryima2994 Жыл бұрын
Огромные слова благодарности за ту работу, которую вы проделали!!! Вы один из тех спикеров, благодаря кому я работаю с технологиями и фреймворками о которых вы рассказываете. Если есть возможность, (очень актуально....) можете рассказать как использовать интерпритатор python при разработке через docker-compose в IDE PyCharm Professional. Еще раз благодарю!!!!
@MyFearIsMyBlue Жыл бұрын
Отдельное спасибо за DB_HOST=database. Никак не удавалось сбридждить приложение и postgres, кроме как через наружний ip. Ни localhost, ни четыре нуля, ни ip контейнера не работали. А тут завелось без прокидвания порта бд наружу!
@marsminerstone5504 Жыл бұрын
Спасибо большое, это очень полезный ролик!
@ФилиппБезручко-ш3ь11 ай бұрын
Спасибо большое! Я не верил что мне, новичку, получиться по этому видео развернуть свой проект на докер. Конечно, пришлось по пути исправлять кучу ошибок и делать по интуиции в некоторых местах, но всё равно получилось! Осталось разобраться с Celery...
@SeniorPomidorDeveloper11 ай бұрын
Спасибо за отзыв! Такая у нас специфика работы, исправлять кучу ошибок и иногда делать по интуиции)
@Developer_python_ Жыл бұрын
Люто плюсую)
@korumika3798 Жыл бұрын
Классный свет и новая камера, прям летняя атмосфера, смотреть еще приятнее :)!
@godgiven994 Жыл бұрын
От души! Посмотрел твои предыдущие курсы по джанго. Формат, подача идеальны!
@SeniorPomidorDeveloper Жыл бұрын
Спасибо
@Name-ko3qb Жыл бұрын
Классная штука docker
@ВиталийКраснов-ч1ф Жыл бұрын
Классный урок по запуску Django в Docker, всё получилось!
@Сёмаб-п6и Жыл бұрын
Это то, что мне так долго не хватало. Большое тебе спасибо, обнял.
@SeniorPomidorDeveloper Жыл бұрын
🤗
@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_ Жыл бұрын
У меня не создаются
@ДенисХаритончик-м8и Жыл бұрын
отличное видео, но на 40:28 можно было просто нажать Configure Python interpreter в углу, сам пайчарм подсказывал)
@smerrch Жыл бұрын
Большое Вам спасибо за курс!
@mcaq1 Жыл бұрын
Ждем следующий урок! Можно было бы по 2 в день сразу)
@SeniorPomidorDeveloper Жыл бұрын
да их не так много вцелом) быстро тогда закончатся )
@mcaq1 Жыл бұрын
@@SeniorPomidorDeveloper а сколько всего уроков?
@SeniorPomidorDeveloper Жыл бұрын
10
@Artem36 Жыл бұрын
@@SeniorPomidorDeveloper может это звучит нагло, но с твоим умением объяснять и подавать материал хотелось бы увидеть больше контента))
@SeniorPomidorDeveloper Жыл бұрын
Больше за деньги)
@Alekseyild Жыл бұрын
Качество контента как всегда на уровне
@Andrey_Fedorov Жыл бұрын
Очень круто! Огромное спасибо!
@GRIMEANARCHY Жыл бұрын
Пушка будет, то что надо) Ждем :)
@ВладиславДрагушин Жыл бұрын
свежий видосик = свежий лайк
@sergiybustrov8831 Жыл бұрын
Спасибо тебе!
@a98cb985 Жыл бұрын
И снова оч спасибо!
@archibaldivanovich4103 Жыл бұрын
Огромное спасибо!
@koshakpoc2876 Жыл бұрын
Вот сеньор и подвёз годного контента
@Bibliophilos Жыл бұрын
Спасибо за урок!
@IslamMamedow Жыл бұрын
Спасибо, то что искал
@koloboopsik Жыл бұрын
Топчик, спасибо за урок
@tynnikov Жыл бұрын
Во-первых, спасибо за уроки! Во-вторых, подскажи пожалуйста название утилиты, которая следит за использованием оперативной памяти?
@igorkulibaba7287 Жыл бұрын
ОООО крутяк💪
@noname52rus Жыл бұрын
спасибо!
@Artem36 Жыл бұрын
Улёт ⚡
@Chel1k7 Жыл бұрын
top
@gaunter_o_d1mm Жыл бұрын
Я бы всё таки советовал использовать дебиан образ для Докерфайла, понятно что он ест больше памяти, но в то же время он и работает намного быстрее, это сейчас у вас просто базовая Джанго, а если в ней будет 20+ зависимостей, то и устанавливаться они будут по 3-5 минут, это если вы alpine образ используете, а с дебиан образом всё устанавливается намного быстрее и вроде как асинхронно, то есть не каждый образ по порядку, а несколько одновременно.
@SeniorPomidorDeveloper Жыл бұрын
Ок. Интересное замечание!
@dmitrymikhailovnicepianomu8688 Жыл бұрын
Спасибо
@aidosatayev1333 Жыл бұрын
какое приложение используете для мониторинга памяти?
@SeniorPomidorDeveloper Жыл бұрын
iStat Menus
@sergkuksov Жыл бұрын
Спасибо за уроки. Можно ещё урок или подсказку как задеплоить докер контейнер и как его запускать правильно? Наверное нужно что вроде связки с nginx?
@SeniorPomidorDeveloper Жыл бұрын
Докер на сервере это отдельная тема для еще одного большого видео.
@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".
@БариАлибастр Жыл бұрын
Привет SPD, а не подскажите почему папка из созданного приложения в докере может не отображаться в пайчарме?
@SeniorPomidorDeveloper Жыл бұрын
Хм. Видимо по тому что она осталась в контейнере .
@onesidemedia5043 Жыл бұрын
Привет, спасибо за классный курс, у меня выходить ошибка такого рода - Permission denied: '/service/manage.py' При создании джанго проекта в 28:00 минуте, что делать?
@onesidemedia5043 Жыл бұрын
думаю сто это из-за того что мы вручную создали папку service_app > service и теперь пользователь докера не может создавать файл или папки Но не понимаю как изменить права доступа. или это из-за другого кто знает????
@SeniorPomidorDeveloper Жыл бұрын
Вроде не было такой проблемы. Попробуйте все заново создать по видео, если не получится то можно спросить в телеграмм группе, ссылка в шапке профиля
@onesidemedia5043 Жыл бұрын
@@SeniorPomidorDeveloper же 2 раз делал, я там даже не могу папку создать такой командой - docker compose run --rm web-app sh -c "mkdir -p newfilder" Пишет что Отказано в доступе.
@SeniorPomidorDeveloper Жыл бұрын
Такое ощущение что сам докер не имеет доступа, к ресурсам которые он создает. Может его надо переустановить? Или может надо проставить права для той папки, которую мы монтируем в докер, скорее похоже на это.
@onesidemedia5043 Жыл бұрын
@@SeniorPomidorDeveloper Попробую пере установить докер
@glebomarov284111 ай бұрын
@Senior Pomidor Developer, добрый день. У меня все завелось, спасибо большое за это видео. Однако, после docker-compose down и последующего docker-compose up пропадают все юзеры, которых я создал в предыдущую сессию включая суперюзера. ЧЯДНТ? Нужно колдовать с volume?
@SeniorPomidorDeveloper11 ай бұрын
Эээ. Не помню. Надо спросить у нас в чате, ссылка в профиле
@glebomarov284111 ай бұрын
@@SeniorPomidorDeveloper Понял. Я думал, команда down остонавливает контейнер, а она его вообще удаляет. Неудивительно, что данные стираются 🙂
@ЗахарНовик-ц6х Жыл бұрын
Здравствуйте. Подскажите, пожалуйста, что у вас за папка temp? это новая папка для проекта?
@SeniorPomidorDeveloper Жыл бұрын
Эээ. Блин, уже не помню. Обычно temp это значит temporary, то есть временные файлы , которые нужны для какой -то операции, а пооом можно удалить
@ibrahimoglu Жыл бұрын
👍
@wissarius Жыл бұрын
Что вы используете в качестве терминала? Он у вас разноцветный.
@SeniorPomidorDeveloper Жыл бұрын
Да какой-то маковый стандартный
@nitroexpress9928 Жыл бұрын
На Мак Ось недавно появился крутой терминал Warp, советую заценить
@Jason-lk6gb9 ай бұрын
Здраствуйте. На версии Django 4 будет работать?
@SeniorPomidorDeveloper9 ай бұрын
Да будет конечно , может какие-то минимальные корректировки нужны будут, может нет. Там мало времени прошло, наверное ничего не изменилось
@ИльяПопов-х3ю3 ай бұрын
А как связать локальную sqlite3 с работающим контейнером. Тоже через volume, или нужно новый сервис как для Postgress?
@SeniorPomidorDeveloper3 ай бұрын
Думаю через volume, это же просто файл
@ИльяПопов-х3ю3 ай бұрын
@@SeniorPomidorDeveloper Я делал так: version: "3.9" services: web_app: build: dockerfile: Dockerfile context: . # путь к Dockerfile image: meteo # название образа container_name: www # название контейнера ports: # слева порт на компьютере, справа порт внутри контейнера - "8000:8001" volumes: - ./db.sqlite3/:/db.sqlite3/ command: > bash -c "python manage.py runserver 0.0.0.0:8001" В контейнер полностью переносится локальная база, но в самой локальной базе сохранения нет. В этом проблема.
@ИльяПопов-х3ю3 ай бұрын
@@SeniorPomidorDeveloper Спасибо за ответ. Я пробовал: version: "3.9" services: web_app: build: dockerfile: Dockerfile context: . # путь к Dockerfile image: meteo # название образа container_name: www # название контейнера ports: # слева порт на компьютере, справа порт внутри контейнера - "8000:8001" volumes: - ./db.sqlite3/:/db.sqlite3/ command: > bash -c "python manage.py runserver 0.0.0.0:8001" Но у меня в контейнер копируется локальная БД и после закрытия контейнера она не сохраняется в локальном виде, т.е. том не связывается с локальной БД.
@SeniorPomidorDeveloper3 ай бұрын
Я понял. Можно в чате уточнить, ссылка в профиле. Там вроде обсуждали какую-то проблему похожую
@АйдарТазеев-р7б Жыл бұрын
Добрый день! подскажите, пожалуйста, с какого видео начать изучать джанго? У вас их так много. Для самого начинающего.
@SeniorPomidorDeveloper Жыл бұрын
Добрый день! Ну старые курсы , конкретно для начинающих, будут проще. Это которые с белой и синей обложкой. Но там проблема в том, что устарели некоторые библиотеки и кое-что работать не будет ( Если начинать с этого то все будет работать отлично. Наверно с этого начинайте , а дальше лучше вернитесь старые. Может у вас получится сделать их на основе этого проекта из нового курса
@MrCipec Жыл бұрын
Советую сначала канал selfedu (джанго+рест), потом помидора можно посмотреть, т.к. у него меньше объяснений и в целом более продвинутая инфа
@tweak1207 Жыл бұрын
Сеньор, подскажи пожалуйста, а БД обязательно в контейнер заворачивать? что если у меня на хосте уже есть БД и я хочу использовать ее
@SeniorPomidorDeveloper Жыл бұрын
Не обязательно. Можно использовать локальную.
@ocean6305 Жыл бұрын
Возник вопрос, а где лежит база postgres? Она же не за бэндмаучена, это значит что контейнер остановится и все данные слетят. Или я что то пропустил. Можно пояснить? Есть bind mount для Django только)
@SeniorPomidorDeveloper Жыл бұрын
Не слетит если контейнер остановить или перезапустить. Курс же записан , каким-то образом. По хорошему, надо было тоже сделать mount, но курс не по докеру и я не придал значение. Тему обсуждали в группе в телеграмме. Можно там почитать
@romanmed90357 күн бұрын
какую максимальную версию питона на данный момент можно использовать чтобы работало как на видео?
@SeniorPomidorDeveloper7 күн бұрын
Хороший вопрос. Я думаю чтобы точно не было проблем то такую же. Ну а если быть готовым самому что-то дофиксить то можно любую
@romanmed90355 күн бұрын
@@SeniorPomidorDeveloper спасибо. в видео достаточно старая. насколько понимаю из того что прочитал что после 3.11 какието большие изменения. вероятно 3.11 будет самое то?
@SeniorPomidorDeveloper5 күн бұрын
Мне кажется что после Python 2 каких-то больших изменений не было, все должно работать по обратной совместимости . Может версии других библиотек тоже придется обновять , и все
@romanmed90355 күн бұрын
@@SeniorPomidorDeveloper спасибо
@dodokwak Жыл бұрын
Спасибо огромное. p.s. эти images none создаются и без джанги ( использовала express from js). Руки не доходят разобраться, почему они плодятся.
@gonfrix938211 ай бұрын
А почему нельзя создавать django приложение локально? Какие подводные?
@SeniorPomidorDeveloper11 ай бұрын
Можно конечно. Во всех прошлых курсах так делал
@DimerD Жыл бұрын
Я правильно онял, если мы смонтировали Volume с локального компа в докер, то все изменеия и манипуляции, такие GET, POST, DELEТE, которые были применены в докере так же сохраняться и на локальном компе? Или все что было в докере, там и останеться, и при новлм запуске докер-композ нужно снова повторять эти действия?
@SeniorPomidorDeveloper Жыл бұрын
Ну это все сохраняется в базе , которая в контейнере в докере и если их не удалять то все останется
@DimerD Жыл бұрын
@@SeniorPomidorDeveloper благодарю Вас за ответ. Извините за наглость. Обещаю, что это последний вопрос:)А есть возможность как то эти изменения сохранить на локальном компьютере?
@SeniorPomidorDeveloper Жыл бұрын
Для этого можно запустить локальную базу и пробросить подключение к ней в докер . Иногда сами data файлы Postgres монтируют в докер. Не уверен как лучше сделать. Может достаточно просто дамп базы делать и локально его применять. Зависит от ваших целей
@Play-fs9gv Жыл бұрын
Не очень понял вот что - зачем в докер файле команда копирования папки service внутрь контейнера если в композе все равно монтируем на это место готовую внешнюю папку?
@SeniorPomidorDeveloper Жыл бұрын
Хороший вопрос! Это был первоначальный план , думаю что и без этого должно работать , если только монтировать
@mikhaillermontov8228 Жыл бұрын
Ссылка на гит будет ? Или чтобы повторить нужно перепечатывать?
@SeniorPomidorDeveloper Жыл бұрын
Есть github.com/chepe4pi/service_app
@your_sss5 күн бұрын
не очень понял мув с монтированием корня проекта в контейнер, ноооо ладно. спасибо, полезно
@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 Жыл бұрын
Спросите в группе в телеграмме, ссылка в профиле
@korumika3798 Жыл бұрын
@@SeniorPomidorDeveloper точно, туплю)
@dadyx85 Жыл бұрын
А когда вы создаёте новый интерпретатор для подсветки синтаксиса и потом устанавливаете зависимости, они глобально ставятся или в виртуальное окружение?
@SeniorPomidorDeveloper Жыл бұрын
Ну если я создаю новый интерпретатор, то зависимости только для него и ставятся. Но же новый, а глобальный у меня старый. Глобальный мы не можем создать , только скачать и установить можем .
@dadyx85 Жыл бұрын
@@SeniorPomidorDeveloper Просто, после того как указали новый интерпретатор, вы ставили из файла рекомендаций джангу и куда он поставился? Ведь source venv/bin/activate вы не набирали.
@SeniorPomidorDeveloper Жыл бұрын
Это просто PyCharm так работает что создает новый virtualenv и сразу его активирует . Добавлю субтитр , действительно, это не очевидно .
@dadyx85 Жыл бұрын
@@SeniorPomidorDeveloper спасибо. А то я сейчас усиленно изучаю Django на курсах яндекса))) . Плюс стараюсь смотреть все, что можно найти на данную тему. Запомнить, конечно, всё это - та ещё задача. У нас Докер тоже будет. Лучше заранее подготовлюсь, чтобы потом не плавать)))
@SergeyNevzorov89 Жыл бұрын
С докером очень хорошо работает vscode, есть плагин и можно работать прямо из контейнера. Посмотрите )
@gonfrix938211 ай бұрын
requirements плагина сейчас нет в pycharm плагинах(
@SeniorPomidorDeveloper11 ай бұрын
Может это уже встроенный функционал. В любом случае, установить не сложно
@Pavel-er4hy Жыл бұрын
Добрый день! Подскажите, пожалуйста, название программы для мониторинга оперативной памяти для Виндоус?
@SeniorPomidorDeveloper Жыл бұрын
Добрый день! Для windows , к сожалению, не знаю
@СергейКоваль-ь1в7 ай бұрын
Не знаю что это, но наверное что-то не пошло! ✔ Container service_app_scoval-database-1 Running 0.0s 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) И так дальше около 40 строчек!!!
@SeniorPomidorDeveloper7 ай бұрын
Наверно эти 40 строчек как раз говорят о проблеме.
@SeniorPomidorDeveloper7 ай бұрын
А если перезагрузить docker контейнеры?
@СергейКоваль-ь1в7 ай бұрын
Жалко в этом чате нельзя вставлять скриншоты!
@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 Жыл бұрын
Напишите в группу в телеграмме, ссылка в профиле. может там помогут , у кого-то была похожая проблема .
@lI-bh5xt Жыл бұрын
Сделайте отдельное видео куда размещать бизнес логику, чтобы не засорять view.
@SeniorPomidorDeveloper Жыл бұрын
В файл business_logic.py 😁 Я серьезно. Именно так и делаем .
@lI-bh5xt Жыл бұрын
@@SeniorPomidorDeveloper есть такое поняте как Service object, в django есть такое?
@lI-bh5xt Жыл бұрын
@@SeniorPomidorDeveloper в каком видео вы показываетет как это делается?
@SeniorPomidorDeveloper Жыл бұрын
Уже не помню, может и не показываю. Там особо и нечего показывать. Есть логика - создаем для нее функцию или класс
@vladvlad3544 Жыл бұрын
Добрый день! У меня появился вопрос: нужно ли делать миграции, когда кто-то попытается развернуть мой докер проект? Т.е. сейчас, чтобы его развернуть я использую git clone, потом docker-compose build и docker-compose up, но вспомнил про миграции и задался вопросом, что я вроде никак их не трогаю, а они есть. Докер сам подхватывает, когда подключаешь к нему базу данных?
@SeniorPomidorDeveloper Жыл бұрын
Добрый день. Так как в докере база чистая, то нужно делать migrate конечно. Или второй вариант, давать дамп базы, чтобы его развернули . А создавать миграции надо заранее , и класть в гит
@vladvlad3544 Жыл бұрын
@@SeniorPomidorDeveloper Я просто вот докеризировал уже готовый, другой проект, попытался его сам развернуть, клонируя сначала репозиторий из гита, а потом просто сбилдил (docker-compose build) его и поднял (docker-compose up) и при этом вся база данных не была пустой. Я немного не понял, почему она оказалось не пустой и поэтому обратился к Вам. Это я что-то не то сделал, или просто это из-за того, что миграции уже были в Гите?
@SeniorPomidorDeveloper Жыл бұрын
Данные могут создаваться в миграциях, это распространенная практика. Нужно почитать их код и там будет это заметно. Также и сама база могла быть в репозитории , к примеру SQLite это дефолтная база для Джанго и она существует в виде файла.
@vladvlad3544 Жыл бұрын
@@SeniorPomidorDeveloper точно, у меня же sqlite стоял, так что наверное да, бд подхватилась из-за этого. Спасибо!
@twenty496 Жыл бұрын
возникла проблема с коммандой docker - compose build - Access is denied. Хотя докер сам запущен и работает очень даже хорошо
@SeniorPomidorDeveloper Жыл бұрын
Вроде бы была такая проблема на windows, поищите в группе в телеграмме, там обсуждали . Ссылка в профиле
@Alekseyild Жыл бұрын
sudo в начале помогает
@yadev3646 Жыл бұрын
Докер прожорливый только на dev сервере или на проде тоже потребуется не меньше 8 гигов оперативки, чтобы запустить такую сборку?
@SeniorPomidorDeveloper Жыл бұрын
Не пробовал запускать с малым количеством оперативки , наверное как-то работать будет.
@avstudia2611 Жыл бұрын
мне тоже интересно, получается под прод придется брать vps c 16 гигами, для маленького интернет-магазина как-то крутовато
@yadev3646 Жыл бұрын
@@avstudia2611 я тоже так думаю
@yadev3646 Жыл бұрын
@@SeniorPomidorDeveloper а конкретней можете ответить? сколько оперативки надо на проде? и сколько оперативки вы используете на своих прод серверах? а то как-то грустно от мысли что надо 16 гигов для хоста))
@SeniorPomidorDeveloper Жыл бұрын
В этом курсе я использую докер , по тому что без него было бы очень сложно показать celery , redis , Postgres и всю их связку. На продакшене их обычно разносят на разные сервера и каждому дают оперативки сколько нужно. Для маленького интернет магазина это вообще все не нужно, он нормально работает без докеров и селери, для такого кейса скорее подойдет курс «Джанго сервер на Linux». В любом случае, этот проект наверное и на двух гигах запустится, непонятно только какие нагрузки выдержит. Вообще это хорошая идея, записать видео про установку его на Linux сервере , я попробую что-то придумать такое .
@alexk3929 Жыл бұрын
Мб кому-то пригодится, если запускаете все окружение через compose , случится так, что ваша база поднята в 1 контейнере, джанга в другом и джанга не будет видеть базу потому что в ее локальной сети(локалхост) Нету никакой постгри на 5432 порте, надо между ними установить общую сеть, extra_hosts: - "host.docker.internal:host-gateway" типа того
@TheSlithlite Жыл бұрын
Где это прописывается?
@SeliverstovMusic Жыл бұрын
А зачем писать в docker-compose 'sh -c "python... ' разве по умолчанию не применяется bash линукса?
@SeniorPomidorDeveloper Жыл бұрын
Просто скопипастил )
@fedor_ado Жыл бұрын
Вот смотришь курсы, уроки на просторах ютуба и диву даёшься сколько нагенерили начал. У гугла целая страна, наверное, выделена под хранение как установить докер, как открыть командную строку итд. :)
@SeniorPomidorDeveloper Жыл бұрын
А куда без этого...
@Pavel-er4hy Жыл бұрын
После установки докера всё время: Docker Desktop starting... (всё время грузится, но не прогружается) Установил на виндоус. Советы со стаковерфло не помогли... или я их неверно применил. У кого-то из учеников была подобная сложность?
@SeniorPomidorDeveloper Жыл бұрын
Не знаю, никто пока про такое не писал . Можно спросить в группе в Телеграмме, ссылка в профиле .
@ЮлияШевелёва-ы3э11 ай бұрын
Я долго мучалась с такой же проблемой, помогло только увеличение оперативки, сразу все заработало
@nitroexpress9928 Жыл бұрын
То, что докер кэширует дофига свободной памяти- это особенность его работы на Мак ОС, на линуксе например он практически ничего не жрёт.
@SeniorPomidorDeveloper Жыл бұрын
Это в конфиге docker можно проставить . Если у мака то в конфиге docker desktop, Хоть 1гб , но будет ли работать неизвестно.
@nitroexpress9928 Жыл бұрын
@@SeniorPomidorDeveloper я думаю смысла особого нет - он у меня на маке с 8гб памяти забивает всё под 0, если по диспетчеру задач смотреть, но на производительности компьютера это никак не сказывается.
@SeniorPomidorDeveloper Жыл бұрын
Да, он просто берет все , что ему дают )
@СергейКоваль-ь1в7 ай бұрын
Не знаю у меня это ошибка или что , но дальше не идет!!!
@YuriyLapunov Жыл бұрын
http: invalid Host header кто-то сталкивался с такой ошибкой при docker-compose build? Правда делаю не из докер-десктоп а из обычного (убунту 22.04)
@SeniorPomidorDeveloper Жыл бұрын
Должно быть также на убунту . Можно в группе спросить. Ссылка в профиле
@YuriyLapunov Жыл бұрын
@@SeniorPomidorDeveloper спасибо, попробую там спросить)
@wissarius Жыл бұрын
Вопрос: Обязательна ли команда "RUN apk add postgresql-client build-base postgresql-dev" в "Dockerfile", если у нас по сути есть описание конфигураций внутри "docker-compose.yml?
@SeniorPomidorDeveloper Жыл бұрын
Вот проверьте и напишите нам
@pavels6563 Жыл бұрын
Народ, я посмотрел "мини-курс о django". Я могу смотреть этот курс, или лучше сначала пройти "бекенд на django"?
@SeniorPomidorDeveloper Жыл бұрын
Лучше этот наверное сначала. Потом если что-то не заработает в курсе "бекенд на django" то можно просто взять из этого курса настройку в docker и дальше "бекенд на django" проходить на основе докера
@pavels6563 Жыл бұрын
@@SeniorPomidorDeveloper Спасибо!!!
@АлексейКомаров-ф8к Жыл бұрын
Не совсем в тему. Мне вот просто интересно, вы, как опытный разработчик, помните все эти команды для докерфайл или докер-композ? Или у вас просто шпаргалка, откуда их можно взять и быстро развернуть приложение?
@SeniorPomidorDeveloper Жыл бұрын
Какие-то помню , но в основном из шпаргалки смотрел . На работе мы практически не используем докер, по этому плохо запоминаются . Все что касается Джанго и следующих видео , почти все по памяти писал, так как часто использую
@vladvlad3544 Жыл бұрын
Есть ли существенная разница между alpine или debian/oracle? Вместо PostgreSQL хочу MySQL взять, так как с ней больше знаком, а альпайн там нет в доступных тэгах
@SeniorPomidorDeveloper Жыл бұрын
Можно любую SQL базу брать, у которой есть драйвер для Джанго. На ORM все выглядит одинаково, никакой разницы не почувствуете (кроме некоторых продвинутых функций, которые крайне редко используются) Можно debían конечно. Но есть небольшой риск , что если что-то делать не так , как в курсе , то где-то может быть другой результат или какие-то новые проблемы, которые нужно будет решить самостоятельно
@vladvlad3544 Жыл бұрын
@@SeniorPomidorDeveloper понял, попробую значит debian, а если будут ошибки и придется искать решения, то это тоже часть учебного процесса)
@SeniorPomidorDeveloper Жыл бұрын
Точно 😁
@user-cy2gr8uc8p Жыл бұрын
А как так выделить несколько файлов в пайчарме😮??
@SeniorPomidorDeveloper Жыл бұрын
Через shift ?
@Aim300 Жыл бұрын
Кто-то: и так да это сложно но мы начнем изучать докер, я создам базовый 4х часовой курс для введения и вы все поймёте Сеньор: (между делом понятно объясняет, так что можно с этим и работать, но естественно не останавливаться) 😅
@SeniorPomidorDeveloper Жыл бұрын
😁
@ProTon998 Жыл бұрын
А ты работаешь с FastAPI?
@SeniorPomidorDeveloper Жыл бұрын
На работе нет. В вообще с разными штуками люблю экспериментировать
@kirillk335 Жыл бұрын
скинь плиз ссылку/названия монитора ресурсов
@SeniorPomidorDeveloper Жыл бұрын
istat menus
@alexbely2269 Жыл бұрын
На 26 минуте при переходе в директорию которая в PyCharm (и что значит куда СКАЧАЛИ git проект) командой в терминале "~ cd PycharmProjects/service_app" у вас высвечивается директория "service_app git:(main) x". Почему так? Или это фишка Mac? (У меня Ubuntu)
@SeniorPomidorDeveloper Жыл бұрын
Да, я думаю что это на маке только так. Он обнаруживает git и подсвечивает ветку, в которой находимся . Думаю что для линукса есть плагины тоже
@alexbely2269 Жыл бұрын
@@SeniorPomidorDeveloper Спасибо за ответ! Ваш труд неоценим!
@montecristo31 Жыл бұрын
установи zsh и + тему, которая поддерживают такую фичу.
@danielohsleeper3765 Жыл бұрын
выскакивает ошибка постоянно. уже все перепробовал could not translate host name "database" to address что можно сделать?
@SeniorPomidorDeveloper Жыл бұрын
Зайдите в телеграмм канал , ссылка в профиле. Вроде обсуждали такое
@Sapsonbz Жыл бұрын
Как обновит pip? не могу поставить пакет Pillow
@SeniorPomidorDeveloper Жыл бұрын
Pip можно обновить через вашу ОС Но для установки pillow этого не нужно
@Sapsonbz Жыл бұрын
@@SeniorPomidorDeveloper а как поставить правильно pillow, он у меня ругается что нужно обновить pip. А pip не обновляется
@SeniorPomidorDeveloper Жыл бұрын
Это просто warring, можно не обращать внимание, ошибка в другом
@rushanusmanov4850 Жыл бұрын
Привет, возникает такая ошибка при команде docker-compose build "line 2: did not find expected key" О чём это говорит?
@SeniorPomidorDeveloper Жыл бұрын
Не знаю.. что-то на второй строке конфига. Может ошибка
@МаксимНовиков-ь4ц Жыл бұрын
При запуске 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 Жыл бұрын
Видимо по тому что директория из контейнера подмонтирована локально.
@АлексейКузенков-г4и Жыл бұрын
Добрый день, нашел способ как поставить миграции без команды 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 Жыл бұрын
Да, почему бы и нет. Хороший способ. Это актуально именно для локальный разработки. Для продакшн мы в принципе не используем runserver
@nurtileu_abdikhalyk Жыл бұрын
пишет вот такая ошибка: [5/7] RUN apk add postgresql-client build-base postgresql-dev: #9 0.432 /bin/sh: 1: apk: not found что делать?
@SeniorPomidorDeveloper Жыл бұрын
Проверить что конфигурация докера написана без ошибок . Можно с моим кодом сверить github.com/chepe4pi/service_app/tree/day-9
@nicksowl Жыл бұрын
Hello, При запуске docker-compose up я получаю вот такую ошибку - FATAL: password authentication failed for user "dbuser" DETAIL: Role "dbuser" does not exist. Кто-нибудь сталкивался? Спасибо
@SeniorPomidorDeveloper Жыл бұрын
Эти права должны быть прописаны в докер имедж. Может ни к тому простгресу подключается ? Сверьте код с репозиторием github.com/chepe4pi/service_app
@СергейКоваль-ь1в7 ай бұрын
Когда запускаю Докер Билд выдает такую ошибку 'docker-compose' process finish with exit code 15 Что это может быть, хоть где его искать?
@SeniorPomidorDeveloper7 ай бұрын
Не понятно (
@СергейКоваль-ь1в7 ай бұрын
Вот с этой ошибкой не могу справиться 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') И что хочет, чтоб Я сделал. Как узнать,
@SeniorPomidorDeveloper7 ай бұрын
Там нижняя часть трейса ошибки не влезла. В ней ответ
@СергейКоваль-ь1в7 ай бұрын
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. Кортеж не может быть вызван! Я и не писал кортежей вроде бы.