Если позволите, то небольшой совет. В докер-файле копировать код, который вы пишите, а значит он меняется, лучше перед самым запуском питона. Иначе у вас при каждом изменении кода, во время билда контейнера, будут пакеты качаться и ставиться заново. А если их поставить выше копирования кода, то слой с пакетами будет использоваться из предыдущего билда и деплой новой версии будет быстрее. Это, кстати, тоже касается вопроса оптимизации, правда деплоя, а не работы приложения.
@@МихаилСемерухин он имеет ввиду после COPY requirements.txt /temp/requirements.txt (строка 3) сразу устанавливать зависимости(строка 8, 10, 12), потому что каждый раз когда меняется код, докер это автоматом понимает по хеш суммам и начинает выполнение с строки 4, так как именно там мы копируем все исходники проекта, соответственно начинается выполнение строки 8 и т.д.
@@shakhzodme именно. Т.е. строку с COPY service .... передвинуть максимально вниз по логике действий, т.к. строки выполняются по порядку и всё что может не выполняться, а быть взято из кэша, будет взято из кэша. А самое долгое по времени выполнения при последующих деплоях, это строка с pip install ... Её лучше ставить выше Copy service, но ниже Copy requairements ..... И ничего выше них не. Должно меняться при билде новых версий, тогда пакеты не будут качаться каждый раз
@@rocky-04 попробуйте собрать на базовом образе не alpine. На нем у меня при установке дополнительных пакетов бывали случаи, когда не стартовал питон. Например, python3.9-slim.
Случайно наткнулся на этот канал, когда возникла нужда добавить Celery в Django. Ведущий очень понравился. Такое чувство, что смотрю Варламова, только гораздо улучшенную его версию: спокойная и грамотная речь. Особенно мне нравится как в режиме онлайн он кодит, мне как новичку становится гораздо легче, так как вижу как сеньор это делает подглядывая на второй экран, значит и я не должен помнить синтаксис всего наизусть
Контейнеры, которые пришлось удалять - это имеджы от предыдущих билдов. Каждый новый билд делает новый имедж и из него запускает контейнеры, а старые имеджи остаются висеть. Чистится через docker prune. Ключ --rm удаляет контейнеры после остановки, но не собранные имеджи
Вот начал 3 курс. Вспоминаю 1 запуск 1го видео "Блин, ааааааа, как же нудно он говорит!". Я тогда не осознавал и только на втором курсе понял, что это мой мозг подвергается правильной нагрузке. Это реальная учеба, а не видео из разряда "Йоу йоу йоу и сегодня мы изучим машинное обучение за 13 секунд!". На втором курсе я настолько преисполнился, что материал начал восприниматься не "нудно", а даже слишком быстро "эйэй, подожди, не успеваю!". Не устану писать как и все благодарности за курс, полностью на русском, получить бесплатно столько материала , который подается в формате "Ученик-репетитор", лучший !:)
Огромные слова благодарности за ту работу, которую вы проделали!!! Вы один из тех спикеров, благодаря кому я работаю с технологиями и фреймворками о которых вы рассказываете. Если есть возможность, (очень актуально....) можете рассказать как использовать интерпритатор python при разработке через docker-compose в IDE PyCharm Professional. Еще раз благодарю!!!!
Спасибо большое! Я не верил что мне, новичку, получиться по этому видео развернуть свой проект на докер. Конечно, пришлось по пути исправлять кучу ошибок и делать по интуиции в некоторых местах, но всё равно получилось! Осталось разобраться с Celery...
Отдельное спасибо за DB_HOST=database. Никак не удавалось сбридждить приложение и postgres, кроме как через наружний ip. Ни localhost, ни четыре нуля, ни ip контейнера не работали. А тут завелось без прокидвания порта бд наружу!
docker-compose exec web-app python manage-py migrate - Миграции можно и так накатить. (тире на точку поменяйте, Туб ссылки удаляет) Автору низкий поклон 🙏
У тех у кого уже есть локально postgres, то может возникнуть ошибка c портами(ведь 5432 уже занят). Для решение этой проблемы в приложение database добавьте ports: - "5433:5432"
@@russul2700 а разве не нужно в сеттингсах самой джанги в настройках БД прописать порт 5433? правда мне ничего не помогало, пришлось удалить все контейнеры, снести с компа локальный постгрес, и только после этого все сработало.
Лишние контейнеры создаются из-за того что вы используете команду в докере команду 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.
Я бы всё таки советовал использовать дебиан образ для Докерфайла, понятно что он ест больше памяти, но в то же время он и работает намного быстрее, это сейчас у вас просто базовая Джанго, а если в ней будет 20+ зависимостей, то и устанавливаться они будут по 3-5 минут, это если вы alpine образ используете, а с дебиан образом всё устанавливается намного быстрее и вроде как асинхронно, то есть не каждый образ по порядку, а несколько одновременно.
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".
Привет, спасибо за классный курс, у меня выходить ошибка такого рода - Permission denied: '/service/manage.py' При создании джанго проекта в 28:00 минуте, что делать?
думаю сто это из-за того что мы вручную создали папку service_app > service и теперь пользователь докера не может создавать файл или папки Но не понимаю как изменить права доступа. или это из-за другого кто знает????
@@SeniorPomidorDeveloper же 2 раз делал, я там даже не могу папку создать такой командой - docker compose run --rm web-app sh -c "mkdir -p newfilder" Пишет что Отказано в доступе.
Такое ощущение что сам докер не имеет доступа, к ресурсам которые он создает. Может его надо переустановить? Или может надо проставить права для той папки, которую мы монтируем в докер, скорее похоже на это.
@Senior Pomidor Developer, добрый день. У меня все завелось, спасибо большое за это видео. Однако, после docker-compose down и последующего docker-compose up пропадают все юзеры, которых я создал в предыдущую сессию включая суперюзера. ЧЯДНТ? Нужно колдовать с volume?
Вот смотришь курсы, уроки на просторах ютуба и диву даёшься сколько нагенерили начал. У гугла целая страна, наверное, выделена под хранение как установить докер, как открыть командную строку итд. :)
@@SeniorPomidorDeveloper спасибо. в видео достаточно старая. насколько понимаю из того что прочитал что после 3.11 какието большие изменения. вероятно 3.11 будет самое то?
Мне кажется что после Python 2 каких-то больших изменений не было, все должно работать по обратной совместимости . Может версии других библиотек тоже придется обновять , и все
@@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" В контейнер полностью переносится локальная база, но в самой локальной базе сохранения нет. В этом проблема.
@@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" Но у меня в контейнер копируется локальная БД и после закрытия контейнера она не сохраняется в локальном виде, т.е. том не связывается с локальной БД.
Добрый день! Ну старые курсы , конкретно для начинающих, будут проще. Это которые с белой и синей обложкой. Но там проблема в том, что устарели некоторые библиотеки и кое-что работать не будет ( Если начинать с этого то все будет работать отлично. Наверно с этого начинайте , а дальше лучше вернитесь старые. Может у вас получится сделать их на основе этого проекта из нового курса
Не очень понял вот что - зачем в докер файле команда копирования папки service внутрь контейнера если в композе все равно монтируем на это место готовую внешнюю папку?
Возник вопрос, а где лежит база postgres? Она же не за бэндмаучена, это значит что контейнер остановится и все данные слетят. Или я что то пропустил. Можно пояснить? Есть bind mount для Django только)
Не слетит если контейнер остановить или перезапустить. Курс же записан , каким-то образом. По хорошему, надо было тоже сделать mount, но курс не по докеру и я не придал значение. Тему обсуждали в группе в телеграмме. Можно там почитать
Как установить docker desktop на linux mint? а так же при docker-compose build вызодит ошибка DockerException( docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
Я правильно онял, если мы смонтировали Volume с локального компа в докер, то все изменеия и манипуляции, такие GET, POST, DELEТE, которые были применены в докере так же сохраняться и на локальном компе? Или все что было в докере, там и останеться, и при новлм запуске докер-композ нужно снова повторять эти действия?
@@SeniorPomidorDeveloper благодарю Вас за ответ. Извините за наглость. Обещаю, что это последний вопрос:)А есть возможность как то эти изменения сохранить на локальном компьютере?
Для этого можно запустить локальную базу и пробросить подключение к ней в докер . Иногда сами data файлы Postgres монтируют в докер. Не уверен как лучше сделать. Может достаточно просто дамп базы делать и локально его применять. Зависит от ваших целей
Не знаю что это, но наверное что-то не пошло! ✔ 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 строчек!!!
Вопрос: Обязательна ли команда "RUN apk add postgresql-client build-base postgresql-dev" в "Dockerfile", если у нас по сути есть описание конфигураций внутри "docker-compose.yml?
@@SeniorPomidorDeveloper я думаю смысла особого нет - он у меня на маке с 8гб памяти забивает всё под 0, если по диспетчеру задач смотреть, но на производительности компьютера это никак не сказывается.
А когда вы создаёте новый интерпретатор для подсветки синтаксиса и потом устанавливаете зависимости, они глобально ставятся или в виртуальное окружение?
Ну если я создаю новый интерпретатор, то зависимости только для него и ставятся. Но же новый, а глобальный у меня старый. Глобальный мы не можем создать , только скачать и установить можем .
@@SeniorPomidorDeveloper Просто, после того как указали новый интерпретатор, вы ставили из файла рекомендаций джангу и куда он поставился? Ведь source venv/bin/activate вы не набирали.
@@SeniorPomidorDeveloper спасибо. А то я сейчас усиленно изучаю Django на курсах яндекса))) . Плюс стараюсь смотреть все, что можно найти на данную тему. Запомнить, конечно, всё это - та ещё задача. У нас Докер тоже будет. Лучше заранее подготовлюсь, чтобы потом не плавать)))
Не совсем в тему. Мне вот просто интересно, вы, как опытный разработчик, помните все эти команды для докерфайл или докер-композ? Или у вас просто шпаргалка, откуда их можно взять и быстро развернуть приложение?
Какие-то помню , но в основном из шпаргалки смотрел . На работе мы практически не используем докер, по этому плохо запоминаются . Все что касается Джанго и следующих видео , почти все по памяти писал, так как часто использую
Кто-то: и так да это сложно но мы начнем изучать докер, я создам базовый 4х часовой курс для введения и вы все поймёте Сеньор: (между делом понятно объясняет, так что можно с этим и работать, но естественно не останавливаться) 😅
После установки докера всё время: Docker Desktop starting... (всё время грузится, но не прогружается) Установил на виндоус. Советы со стаковерфло не помогли... или я их неверно применил. У кого-то из учеников была подобная сложность?
Hello, При запуске docker-compose up я получаю вот такую ошибку - FATAL: password authentication failed for user "dbuser" DETAIL: Role "dbuser" does not exist. Кто-нибудь сталкивался? Спасибо
Мб кому-то пригодится, если запускаете все окружение через compose , случится так, что ваша база поднята в 1 контейнере, джанга в другом и джанга не будет видеть базу потому что в ее локальной сети(локалхост) Нету никакой постгри на 5432 порте, надо между ними установить общую сеть, extra_hosts: - "host.docker.internal:host-gateway" типа того
@@SeniorPomidorDeveloper а конкретней можете ответить? сколько оперативки надо на проде? и сколько оперативки вы используете на своих прод серверах? а то как-то грустно от мысли что надо 16 гигов для хоста))
В этом курсе я использую докер , по тому что без него было бы очень сложно показать celery , redis , Postgres и всю их связку. На продакшене их обычно разносят на разные сервера и каждому дают оперативки сколько нужно. Для маленького интернет магазина это вообще все не нужно, он нормально работает без докеров и селери, для такого кейса скорее подойдет курс «Джанго сервер на Linux». В любом случае, этот проект наверное и на двух гигах запустится, непонятно только какие нагрузки выдержит. Вообще это хорошая идея, записать видео про установку его на Linux сервере , я попробую что-то придумать такое .
Есть ли существенная разница между alpine или debian/oracle? Вместо PostgreSQL хочу MySQL взять, так как с ней больше знаком, а альпайн там нет в доступных тэгах
Можно любую SQL базу брать, у которой есть драйвер для Джанго. На ORM все выглядит одинаково, никакой разницы не почувствуете (кроме некоторых продвинутых функций, которые крайне редко используются) Можно debían конечно. Но есть небольшой риск , что если что-то делать не так , как в курсе , то где-то может быть другой результат или какие-то новые проблемы, которые нужно будет решить самостоятельно
Лучше этот наверное сначала. Потом если что-то не заработает в курсе "бекенд на django" то можно просто взять из этого курса настройку в docker и дальше "бекенд на django" проходить на основе докера
Возник вопрос, я как обладатель 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.)
Добрый день! У меня появился вопрос: нужно ли делать миграции, когда кто-то попытается развернуть мой докер проект? Т.е. сейчас, чтобы его развернуть я использую git clone, потом docker-compose build и docker-compose up, но вспомнил про миграции и задался вопросом, что я вроде никак их не трогаю, а они есть. Докер сам подхватывает, когда подключаешь к нему базу данных?
Добрый день. Так как в докере база чистая, то нужно делать migrate конечно. Или второй вариант, давать дамп базы, чтобы его развернули . А создавать миграции надо заранее , и класть в гит
@@SeniorPomidorDeveloper Я просто вот докеризировал уже готовый, другой проект, попытался его сам развернуть, клонируя сначала репозиторий из гита, а потом просто сбилдил (docker-compose build) его и поднял (docker-compose up) и при этом вся база данных не была пустой. Я немного не понял, почему она оказалось не пустой и поэтому обратился к Вам. Это я что-то не то сделал, или просто это из-за того, что миграции уже были в Гите?
Данные могут создаваться в миграциях, это распространенная практика. Нужно почитать их код и там будет это заметно. Также и сама база могла быть в репозитории , к примеру SQLite это дефолтная база для Джанго и она существует в виде файла.
На 26 минуте при переходе в директорию которая в PyCharm (и что значит куда СКАЧАЛИ git проект) командой в терминале "~ cd PycharmProjects/service_app" у вас высвечивается директория "service_app git:(main) x". Почему так? Или это фишка Mac? (У меня Ubuntu)
При запуске 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. И я все равно не до конца понимаю как эта команда работает. Почему я создаю джанго проект в контейнере, а появляется он у меня локально, как это возможно?О_о
Вот с этой ошибкой не могу справиться 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') И что хочет, чтоб Я сделал. Как узнать,
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. Кортеж не может быть вызван! Я и не писал кортежей вроде бы.
Добрый день, нашел способ как поставить миграции без команды 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. в командах надо добавить точки, а то боты удаляют мой комент:)
Если позволите, то небольшой совет. В докер-файле копировать код, который вы пишите, а значит он меняется, лучше перед самым запуском питона. Иначе у вас при каждом изменении кода, во время билда контейнера, будут пакеты качаться и ставиться заново. А если их поставить выше копирования кода, то слой с пакетами будет использоваться из предыдущего билда и деплой новой версии будет быстрее. Это, кстати, тоже касается вопроса оптимизации, правда деплоя, а не работы приложения.
Привет! Если тебе не сложно можешь подробнее описать что и куда надо переставить в докерфайле, чтобы слои не переписывать?
@@МихаилСемерухин он имеет ввиду после COPY requirements.txt /temp/requirements.txt (строка 3) сразу устанавливать зависимости(строка 8, 10, 12), потому что каждый раз когда меняется код, докер это автоматом понимает по хеш суммам и начинает выполнение с строки 4, так как именно там мы копируем все исходники проекта, соответственно начинается выполнение строки 8 и т.д.
@@shakhzodme именно. Т.е. строку с COPY service .... передвинуть максимально вниз по логике действий, т.к. строки выполняются по порядку и всё что может не выполняться, а быть взято из кэша, будет взято из кэша. А самое долгое по времени выполнения при последующих деплоях, это строка с pip install ... Её лучше ставить выше Copy service, но ниже Copy requairements ..... И ничего выше них не. Должно меняться при билде новых версий, тогда пакеты не будут качаться каждый раз
@@rocky-04 что за ошибка? На каком шаге возникает?
@@rocky-04 попробуйте собрать на базовом образе не alpine. На нем у меня при установке дополнительных пакетов бывали случаи, когда не стартовал питон. Например, python3.9-slim.
Самый лучший урок по Докер+Джанго на Ютубе(включая англоговорящий) для новичков.
Шикарное видео , альтернативы на просторах не встречал ! Спасибо вам большое за такие ценные знания
Случайно наткнулся на этот канал, когда возникла нужда добавить Celery в Django. Ведущий очень понравился. Такое чувство, что смотрю Варламова, только гораздо улучшенную его версию: спокойная и грамотная речь. Особенно мне нравится как в режиме онлайн он кодит, мне как новичку становится гораздо легче, так как вижу как сеньор это делает подглядывая на второй экран, значит и я не должен помнить синтаксис всего наизусть
Спасибо! 😁 второй экран это я докер конфигурацию плохо помню, ну и примеры кода смотрю, которые буду делать. Синтаксис питона я конечно помню )
Контейнеры, которые пришлось удалять - это имеджы от предыдущих билдов. Каждый новый билд делает новый имедж и из него запускает контейнеры, а старые имеджи остаются висеть. Чистится через docker prune. Ключ --rm удаляет контейнеры после остановки, но не собранные имеджи
Как я ждал твои видео)))очень понятно объясняешь, спасибо за твой труд
Вот начал 3 курс. Вспоминаю 1 запуск 1го видео "Блин, ааааааа, как же нудно он говорит!". Я тогда не осознавал и только на втором курсе понял, что это мой мозг подвергается правильной нагрузке. Это реальная учеба, а не видео из разряда "Йоу йоу йоу и сегодня мы изучим машинное обучение за 13 секунд!". На втором курсе я настолько преисполнился, что материал начал восприниматься не "нудно", а даже слишком быстро "эйэй, подожди, не успеваю!". Не устану писать как и все благодарности за курс, полностью на русском, получить бесплатно столько материала , который подается в формате "Ученик-репетитор", лучший !:)
Спасибо за такой отзыв. Никогда не задумавшая что может быть такое разное восприятие и как оно меняется . Очень интересно было почитать !
Спасибо! Курс как и все предидущие - супер!
Огромные слова благодарности за ту работу, которую вы проделали!!!
Вы один из тех спикеров, благодаря кому я работаю с технологиями и фреймворками о которых вы рассказываете.
Если есть возможность, (очень актуально....) можете рассказать как использовать интерпритатор python при разработке через docker-compose в IDE PyCharm Professional.
Еще раз благодарю!!!!
Спасибо Сеньору Помидору, это лучшее видео по Докеру
Классный свет и новая камера, прям летняя атмосфера, смотреть еще приятнее :)!
Спасибо огромное за контент. Пожалуйста продолжай развивать канал.
От души! Посмотрел твои предыдущие курсы по джанго. Формат, подача идеальны!
Спасибо
Боже храни Сеньора Помидора! =) Великолепный контент!
🙏
Спасибо большое! Я не верил что мне, новичку, получиться по этому видео развернуть свой проект на докер. Конечно, пришлось по пути исправлять кучу ошибок и делать по интуиции в некоторых местах, но всё равно получилось! Осталось разобраться с Celery...
Спасибо за отзыв! Такая у нас специфика работы, исправлять кучу ошибок и иногда делать по интуиции)
Отдельное спасибо за DB_HOST=database. Никак не удавалось сбридждить приложение и postgres, кроме как через наружний ip. Ни localhost, ни четыре нуля, ни ip контейнера не работали. А тут завелось без прокидвания порта бд наружу!
docker-compose exec web-app python manage-py migrate - Миграции можно и так накатить. (тире на точку поменяйте, Туб ссылки удаляет)
Автору низкий поклон 🙏
Спасибо большое, это очень полезный ролик!
Классная штука docker
Классный урок по запуску Django в Docker, всё получилось!
Это то, что мне так долго не хватало. Большое тебе спасибо, обнял.
🤗
У тех у кого уже есть локально postgres, то может возникнуть ошибка c портами(ведь 5432 уже занят). Для решение этой проблемы в приложение database добавьте ports: - "5433:5432"
Надо при этом где-то в compose переменных или еще где-то ставить 5433?
@@tweak1207 нет только в docker-compose пропиши. Потом по новому docker-compose up запускаешь, еще заново миграции не забудь сделать.
Спасибо тебе большое )
Спасибо огромное!
@@russul2700 а разве не нужно в сеттингсах самой джанги в настройках БД прописать порт 5433?
правда мне ничего не помогало, пришлось удалить все контейнеры, снести с компа локальный постгрес, и только после этого все сработало.
Ждем следующий урок! Можно было бы по 2 в день сразу)
да их не так много вцелом) быстро тогда закончатся )
@@SeniorPomidorDeveloper а сколько всего уроков?
10
@@SeniorPomidorDeveloper может это звучит нагло, но с твоим умением объяснять и подавать материал хотелось бы увидеть больше контента))
Больше за деньги)
Люто плюсую)
отличное видео, но на 40:28 можно было просто нажать Configure Python interpreter в углу, сам пайчарм подсказывал)
Лишние контейнеры создаются из-за того что вы используете команду в докере команду 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.
У меня не создаются
Во-первых, спасибо за уроки!
Во-вторых, подскажи пожалуйста название утилиты, которая следит за использованием оперативной памяти?
Большое Вам спасибо за курс!
Спасибо за уроки. Можно ещё урок или подсказку как задеплоить докер контейнер и как его запускать правильно? Наверное нужно что вроде связки с nginx?
Докер на сервере это отдельная тема для еще одного большого видео.
Очень круто! Огромное спасибо!
Вот сеньор и подвёз годного контента
Качество контента как всегда на уровне
Пушка будет, то что надо) Ждем :)
свежий видосик = свежий лайк
Огромное спасибо!
Я бы всё таки советовал использовать дебиан образ для Докерфайла, понятно что он ест больше памяти, но в то же время он и работает намного быстрее, это сейчас у вас просто базовая Джанго, а если в ней будет 20+ зависимостей, то и устанавливаться они будут по 3-5 минут, это если вы alpine образ используете, а с дебиан образом всё устанавливается намного быстрее и вроде как асинхронно, то есть не каждый образ по порядку, а несколько одновременно.
Ок. Интересное замечание!
Спасибо тебе!
Спасибо за урок!
И снова оч спасибо!
спасибо!
какое приложение используете для мониторинга памяти?
iStat Menus
Спасибо, то что искал
Топчик, спасибо за урок
Спасибо
ОООО крутяк💪
top
Что вы используете в качестве терминала? Он у вас разноцветный.
Да какой-то маковый стандартный
На Мак Ось недавно появился крутой терминал Warp, советую заценить
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".
👍
Спасибо огромное.
p.s. эти images none создаются и без джанги ( использовала express from js). Руки не доходят разобраться, почему они плодятся.
не очень понял мув с монтированием корня проекта в контейнер, ноооо ладно. спасибо, полезно
Улёт ⚡
requirements плагина сейчас нет в pycharm плагинах(
Может это уже встроенный функционал. В любом случае, установить не сложно
Привет, спасибо за классный курс, у меня выходить ошибка такого рода - Permission denied: '/service/manage.py'
При создании джанго проекта в 28:00 минуте, что делать?
думаю сто это из-за того что мы вручную создали папку service_app > service и теперь пользователь докера не может создавать файл или папки
Но не понимаю как изменить права доступа.
или это из-за другого кто знает????
Вроде не было такой проблемы. Попробуйте все заново создать по видео, если не получится то можно спросить в телеграмм группе, ссылка в шапке профиля
@@SeniorPomidorDeveloper же 2 раз делал, я там даже не могу папку создать такой командой - docker compose run --rm web-app sh -c "mkdir -p newfilder"
Пишет что Отказано в доступе.
Такое ощущение что сам докер не имеет доступа, к ресурсам которые он создает. Может его надо переустановить?
Или может надо проставить права для той папки, которую мы монтируем в докер, скорее похоже на это.
@@SeniorPomidorDeveloper Попробую пере установить докер
Сделайте отдельное видео куда размещать бизнес логику, чтобы не засорять view.
В файл business_logic.py 😁
Я серьезно. Именно так и делаем .
@@SeniorPomidorDeveloper есть такое поняте как Service object, в django есть такое?
@@SeniorPomidorDeveloper в каком видео вы показываетет как это делается?
Уже не помню, может и не показываю. Там особо и нечего показывать. Есть логика - создаем для нее функцию или класс
Привет SPD, а не подскажите почему папка из созданного приложения в докере может не отображаться в пайчарме?
Хм. Видимо по тому что она осталась в контейнере .
@Senior Pomidor Developer, добрый день. У меня все завелось, спасибо большое за это видео. Однако, после docker-compose down и последующего docker-compose up пропадают все юзеры, которых я создал в предыдущую сессию включая суперюзера. ЧЯДНТ? Нужно колдовать с volume?
Эээ. Не помню. Надо спросить у нас в чате, ссылка в профиле
@@SeniorPomidorDeveloper Понял. Я думал, команда down остонавливает контейнер, а она его вообще удаляет. Неудивительно, что данные стираются 🙂
Здраствуйте. На версии Django 4 будет работать?
Да будет конечно , может какие-то минимальные корректировки нужны будут, может нет. Там мало времени прошло, наверное ничего не изменилось
Вот смотришь курсы, уроки на просторах ютуба и диву даёшься сколько нагенерили начал. У гугла целая страна, наверное, выделена под хранение как установить докер, как открыть командную строку итд. :)
А куда без этого...
А почему нельзя создавать django приложение локально? Какие подводные?
Можно конечно. Во всех прошлых курсах так делал
Здравствуйте. Подскажите, пожалуйста, что у вас за папка temp? это новая папка для проекта?
Эээ. Блин, уже не помню. Обычно temp это значит temporary, то есть временные файлы , которые нужны для какой -то операции, а пооом можно удалить
возникла проблема с коммандой docker - compose build - Access is denied. Хотя докер сам запущен и работает очень даже хорошо
Вроде бы была такая проблема на windows, поищите в группе в телеграмме, там обсуждали . Ссылка в профиле
sudo в начале помогает
Сеньор, подскажи пожалуйста, а БД обязательно в контейнер заворачивать? что если у меня на хосте уже есть БД и я хочу использовать ее
Не обязательно. Можно использовать локальную.
Ссылка на гит будет ? Или чтобы повторить нужно перепечатывать?
Есть github.com/chepe4pi/service_app
какую максимальную версию питона на данный момент можно использовать чтобы работало как на видео?
Хороший вопрос. Я думаю чтобы точно не было проблем то такую же. Ну а если быть готовым самому что-то дофиксить то можно любую
@@SeniorPomidorDeveloper спасибо. в видео достаточно старая. насколько понимаю из того что прочитал что после 3.11 какието большие изменения. вероятно 3.11 будет самое то?
Мне кажется что после Python 2 каких-то больших изменений не было, все должно работать по обратной совместимости .
Может версии других библиотек тоже придется обновять , и все
@@SeniorPomidorDeveloper спасибо
http: invalid Host header кто-то сталкивался с такой ошибкой при docker-compose build? Правда делаю не из докер-десктоп а из обычного (убунту 22.04)
Должно быть также на убунту . Можно в группе спросить. Ссылка в профиле
@@SeniorPomidorDeveloper спасибо, попробую там спросить)
А как связать локальную sqlite3 с работающим контейнером. Тоже через volume, или нужно новый сервис как для Postgress?
Думаю через volume, это же просто файл
@@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"
В контейнер полностью переносится локальная база, но в самой локальной базе сохранения нет. В этом проблема.
@@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"
Но у меня в контейнер копируется локальная БД и после закрытия контейнера она не сохраняется в локальном виде, т.е. том не связывается с локальной БД.
Я понял. Можно в чате уточнить, ссылка в профиле. Там вроде обсуждали какую-то проблему похожую
Добрый день! подскажите, пожалуйста, с какого видео начать изучать джанго? У вас их так много. Для самого начинающего.
Добрый день! Ну старые курсы , конкретно для начинающих, будут проще. Это которые с белой и синей обложкой.
Но там проблема в том, что устарели некоторые библиотеки и кое-что работать не будет (
Если начинать с этого то все будет работать отлично.
Наверно с этого начинайте , а дальше лучше вернитесь старые. Может у вас получится сделать их на основе этого проекта из нового курса
Советую сначала канал selfedu (джанго+рест), потом помидора можно посмотреть, т.к. у него меньше объяснений и в целом более продвинутая инфа
Добрый день!
Подскажите, пожалуйста, название программы для мониторинга оперативной памяти для Виндоус?
Добрый день! Для windows , к сожалению, не знаю
Не очень понял вот что - зачем в докер файле команда копирования папки service внутрь контейнера если в композе все равно монтируем на это место готовую внешнюю папку?
Хороший вопрос! Это был первоначальный план , думаю что и без этого должно работать , если только монтировать
Возник вопрос, а где лежит база postgres? Она же не за бэндмаучена, это значит что контейнер остановится и все данные слетят. Или я что то пропустил. Можно пояснить? Есть bind mount для Django только)
Не слетит если контейнер остановить или перезапустить. Курс же записан , каким-то образом. По хорошему, надо было тоже сделать mount, но курс не по докеру и я не придал значение. Тему обсуждали в группе в телеграмме. Можно там почитать
Как установить docker desktop на linux mint? а так же при docker-compose build вызодит ошибка
DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
Напишите в группу в телеграмме, ссылка в профиле. может там помогут , у кого-то была похожая проблема .
Я правильно онял, если мы смонтировали Volume с локального компа в докер, то все изменеия и манипуляции, такие GET, POST, DELEТE, которые были применены в докере так же сохраняться и на локальном компе? Или все что было в докере, там и останеться, и при новлм запуске докер-композ нужно снова повторять эти действия?
Ну это все сохраняется в базе , которая в контейнере в докере и если их не удалять то все останется
@@SeniorPomidorDeveloper благодарю Вас за ответ. Извините за наглость. Обещаю, что это последний вопрос:)А есть возможность как то эти изменения сохранить на локальном компьютере?
Для этого можно запустить локальную базу и пробросить подключение к ней в докер . Иногда сами data файлы Postgres монтируют в докер. Не уверен как лучше сделать. Может достаточно просто дамп базы делать и локально его применять. Зависит от ваших целей
Не знаю что это, но наверное что-то не пошло! ✔ 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 строчек!!!
Наверно эти 40 строчек как раз говорят о проблеме.
А если перезагрузить docker контейнеры?
Жалко в этом чате нельзя вставлять скриншоты!
Вопрос: Обязательна ли команда "RUN apk add postgresql-client build-base postgresql-dev" в "Dockerfile", если у нас по сути есть описание конфигураций внутри "docker-compose.yml?
Вот проверьте и напишите нам
Привет, возникает такая ошибка при команде docker-compose build "line 2: did not find expected key"
О чём это говорит?
Не знаю.. что-то на второй строке конфига. Может ошибка
То, что докер кэширует дофига свободной памяти- это особенность его работы на Мак ОС, на линуксе например он практически ничего не жрёт.
Это в конфиге docker можно проставить . Если у мака то в конфиге docker desktop, Хоть 1гб , но будет ли работать неизвестно.
@@SeniorPomidorDeveloper я думаю смысла особого нет - он у меня на маке с 8гб памяти забивает всё под 0, если по диспетчеру задач смотреть, но на производительности компьютера это никак не сказывается.
Да, он просто берет все , что ему дают )
А когда вы создаёте новый интерпретатор для подсветки синтаксиса и потом устанавливаете зависимости, они глобально ставятся или в виртуальное окружение?
Ну если я создаю новый интерпретатор, то зависимости только для него и ставятся. Но же новый, а глобальный у меня старый. Глобальный мы не можем создать , только скачать и установить можем .
@@SeniorPomidorDeveloper Просто, после того как указали новый интерпретатор, вы ставили из файла рекомендаций джангу и куда он поставился? Ведь source venv/bin/activate вы не набирали.
Это просто PyCharm так работает что создает новый virtualenv и сразу его активирует . Добавлю субтитр , действительно, это не очевидно .
@@SeniorPomidorDeveloper спасибо. А то я сейчас усиленно изучаю Django на курсах яндекса))) . Плюс стараюсь смотреть все, что можно найти на данную тему. Запомнить, конечно, всё это - та ещё задача. У нас Докер тоже будет. Лучше заранее подготовлюсь, чтобы потом не плавать)))
С докером очень хорошо работает vscode, есть плагин и можно работать прямо из контейнера. Посмотрите )
Не совсем в тему. Мне вот просто интересно, вы, как опытный разработчик, помните все эти команды для докерфайл или докер-композ? Или у вас просто шпаргалка, откуда их можно взять и быстро развернуть приложение?
Какие-то помню , но в основном из шпаргалки смотрел . На работе мы практически не используем докер, по этому плохо запоминаются .
Все что касается Джанго и следующих видео , почти все по памяти писал, так как часто использую
А зачем писать в docker-compose 'sh -c "python... ' разве по умолчанию не применяется bash линукса?
Просто скопипастил )
Не знаю у меня это ошибка или что , но дальше не идет!!!
Кто-то: и так да это сложно но мы начнем изучать докер, я создам базовый 4х часовой курс для введения и вы все поймёте
Сеньор: (между делом понятно объясняет, так что можно с этим и работать, но естественно не останавливаться)
😅
😁
После установки докера всё время: Docker Desktop starting... (всё время грузится, но не прогружается)
Установил на виндоус.
Советы со стаковерфло не помогли... или я их неверно применил.
У кого-то из учеников была подобная сложность?
Не знаю, никто пока про такое не писал . Можно спросить в группе в Телеграмме, ссылка в профиле .
Я долго мучалась с такой же проблемой, помогло только увеличение оперативки, сразу все заработало
Hello,
При запуске docker-compose up я получаю вот такую ошибку -
FATAL: password authentication failed for user "dbuser"
DETAIL: Role "dbuser" does not exist.
Кто-нибудь сталкивался? Спасибо
Эти права должны быть прописаны в докер имедж. Может ни к тому простгресу подключается ?
Сверьте код с репозиторием github.com/chepe4pi/service_app
Мб кому-то пригодится, если запускаете все окружение через compose , случится так, что ваша база поднята в 1 контейнере, джанга в другом и джанга не будет видеть базу потому что в ее локальной сети(локалхост) Нету никакой постгри на 5432 порте, надо между ними установить общую сеть,
extra_hosts:
- "host.docker.internal:host-gateway"
типа того
Где это прописывается?
Докер прожорливый только на dev сервере или на проде тоже потребуется не меньше 8 гигов оперативки, чтобы запустить такую сборку?
Не пробовал запускать с малым количеством оперативки , наверное как-то работать будет.
мне тоже интересно, получается под прод придется брать vps c 16 гигами, для маленького интернет-магазина как-то крутовато
@@avstudia2611 я тоже так думаю
@@SeniorPomidorDeveloper а конкретней можете ответить? сколько оперативки надо на проде? и сколько оперативки вы используете на своих прод серверах? а то как-то грустно от мысли что надо 16 гигов для хоста))
В этом курсе я использую докер , по тому что без него было бы очень сложно показать celery , redis , Postgres и всю их связку. На продакшене их обычно разносят на разные сервера и каждому дают оперативки сколько нужно. Для маленького интернет магазина это вообще все не нужно, он нормально работает без докеров и селери, для такого кейса скорее подойдет курс «Джанго сервер на Linux».
В любом случае, этот проект наверное и на двух гигах запустится, непонятно только какие нагрузки выдержит. Вообще это хорошая идея, записать видео про установку его на Linux сервере , я попробую что-то придумать такое .
выскакивает ошибка постоянно. уже все перепробовал could not translate host name "database" to address что можно сделать?
Зайдите в телеграмм канал , ссылка в профиле. Вроде обсуждали такое
Есть ли существенная разница между alpine или debian/oracle? Вместо PostgreSQL хочу MySQL взять, так как с ней больше знаком, а альпайн там нет в доступных тэгах
Можно любую SQL базу брать, у которой есть драйвер для Джанго. На ORM все выглядит одинаково, никакой разницы не почувствуете (кроме некоторых продвинутых функций, которые крайне редко используются)
Можно debían конечно. Но есть небольшой риск , что если что-то делать не так , как в курсе , то где-то может быть другой результат или какие-то новые проблемы, которые нужно будет решить самостоятельно
@@SeniorPomidorDeveloper понял, попробую значит debian, а если будут ошибки и придется искать решения, то это тоже часть учебного процесса)
Точно 😁
Народ, я посмотрел "мини-курс о django". Я могу смотреть этот курс, или лучше сначала пройти "бекенд на django"?
Лучше этот наверное сначала. Потом если что-то не заработает в курсе "бекенд на django" то можно просто взять из этого курса настройку в docker и дальше "бекенд на django" проходить на основе докера
@@SeniorPomidorDeveloper Спасибо!!!
А как так выделить несколько файлов в пайчарме😮??
Через shift ?
Возник вопрос, я как обладатель 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 точно, туплю)
Добрый день! У меня появился вопрос: нужно ли делать миграции, когда кто-то попытается развернуть мой докер проект? Т.е. сейчас, чтобы его развернуть я использую git clone, потом docker-compose build и docker-compose up, но вспомнил про миграции и задался вопросом, что я вроде никак их не трогаю, а они есть. Докер сам подхватывает, когда подключаешь к нему базу данных?
Добрый день. Так как в докере база чистая, то нужно делать migrate конечно. Или второй вариант, давать дамп базы, чтобы его развернули . А создавать миграции надо заранее , и класть в гит
@@SeniorPomidorDeveloper Я просто вот докеризировал уже готовый, другой проект, попытался его сам развернуть, клонируя сначала репозиторий из гита, а потом просто сбилдил (docker-compose build) его и поднял (docker-compose up) и при этом вся база данных не была пустой. Я немного не понял, почему она оказалось не пустой и поэтому обратился к Вам. Это я что-то не то сделал, или просто это из-за того, что миграции уже были в Гите?
Данные могут создаваться в миграциях, это распространенная практика. Нужно почитать их код и там будет это заметно. Также и сама база могла быть в репозитории , к примеру SQLite это дефолтная база для Джанго и она существует в виде файла.
@@SeniorPomidorDeveloper точно, у меня же sqlite стоял, так что наверное да, бд подхватилась из-за этого. Спасибо!
скинь плиз ссылку/названия монитора ресурсов
istat menus
На 26 минуте при переходе в директорию которая в PyCharm (и что значит куда СКАЧАЛИ git проект) командой в терминале "~ cd PycharmProjects/service_app" у вас высвечивается директория "service_app git:(main) x". Почему так? Или это фишка Mac? (У меня Ubuntu)
Да, я думаю что это на маке только так. Он обнаруживает git и подсвечивает ветку, в которой находимся . Думаю что для линукса есть плагины тоже
@@SeniorPomidorDeveloper Спасибо за ответ! Ваш труд неоценим!
установи zsh и + тему, которая поддерживают такую фичу.
А ты работаешь с FastAPI?
На работе нет. В вообще с разными штуками люблю экспериментировать
При запуске 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.
И я все равно не до конца понимаю как эта команда работает. Почему я создаю джанго проект в контейнере, а появляется он у меня локально, как это возможно?О_о
Видимо по тому что директория из контейнера подмонтирована локально.
пишет вот такая ошибка: [5/7] RUN apk add postgresql-client build-base postgresql-dev:
#9 0.432 /bin/sh: 1: apk: not found
что делать?
Проверить что конфигурация докера написана без ошибок . Можно с моим кодом сверить github.com/chepe4pi/service_app/tree/day-9
Когда запускаю Докер Билд выдает такую ошибку 'docker-compose' process finish with exit code 15
Что это может быть, хоть где его искать?
Не понятно (
Вот с этой ошибкой не могу справиться
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')
И что хочет, чтоб Я сделал.
Как узнать,
Там нижняя часть трейса ошибки не влезла. В ней ответ
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.
Кортеж не может быть вызван!
Я и не писал кортежей вроде бы.
Жаль тут в коментах нельзя вставлять скриншоты!
Как обновит pip? не могу поставить пакет Pillow
Pip можно обновить через вашу ОС
Но для установки pillow этого не нужно
@@SeniorPomidorDeveloper а как поставить правильно pillow, он у меня ругается что нужно обновить pip. А pip не обновляется
Это просто warring, можно не обращать внимание, ошибка в другом
Добрый день, нашел способ как поставить миграции без команды
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. в командах надо добавить точки, а то боты удаляют мой комент:)
Да, почему бы и нет. Хороший способ. Это актуально именно для локальный разработки. Для продакшн мы в принципе не используем runserver