DOCKER-COMPOSE с нуля простыми словами! На примере python, django, nginx. celery, redis и postgresql
Vložit
- čas přidán 27. 07. 2024
- В этом видео на практическом примере разбираем, как пользоваться docker-compose и зачем он нужен. Разбирать будем на примере простого приложения, которое использует практически все: python, django, nginx. celery, celery beat, redis и postgresql
00:00 - Вступление
00:35 - Зачем нужен docker-compose
01:39 - Что такое docker
03:49 - Установка docker-compose
04:05 - Приложение для контейнеризации
05:45 - Ставим PostgreSQL
08:45 - Маппинг портов
14:29 - Настройка образа для django приложения
23:41 - Зачем нужен nginx, как работать со статикой
25:55 - Образ для nginx
27:23 - Как работает volume
38:24 - Образ для фронтенда (React)
44:02 - Периодические задачи
45:15 - Образ для redis
46:02 - Образы для celery и celery-beat
51:55 - Ставим все при помощи одной команды
57:36 - Профили
58:50 - Запуск контейнеров в локальной сети
01:00:21 - Healthcheck
01:04:04 - Как дебажить приложение внутри контейнера
01:08:32 - Запуск тестов на контейнере
01:11:04 - Сторонние сервисы
01:13:06 - Механизм работы volume
01:13:59 - Работа с сетью, networks
01:15:36 - Масштабирование
Ссылка на видео про docker: • Все что нужно знать пр...
Код на github: github.com/python-dev-blog/do...
Содержание и форма подачи материала на очень высоком уровне.
Автору большое спасибо!
🤍
Это, наверно лучший гайд по настройке докера для Django и Nginx. Просто лучшая, благодарю
Это просто величайшее видео ❤ незаслуженно мало просмотров
огромное спасибо за поддержку🤍
Жду с нетерпением видео про kubernetes
Это лучшее видео по Docker, которое я только видел на Ютюб!!! Огромная благодарность тебе Елена, разложила все по полочкам и очень подробно все объяснила! Это видео как полноценный курс по содержанию, но при этом все очень компактно и по делу!
Очень ждем следующее видео, которое ты анонсировала :)
Спасибо за обратную связь)
Топ контент
Классное видео, ждем еще)
Отличный контент!
Жду новых видео
Великолепный мануал, благодарю. У Вас, кажется, талант разъяснять такие вещи.
Спасибо, рада что было понятно)
Видео класс! Довольно детально, не затянуто, спасибо Алёна!
Умничка! Приятно слышать девочку....
Великолепный видеоролик - коротко и емко. Спасибо и всего самого лучшего!
Спасибо 🤍
This is very useful, thanks a million!
Долго искал подобное видео. Спасибо!
🤍
Наткнулся на видео случайно, но хочу сказать - Елена огромное спасибо, это замечательно видео, очень качественное, понятное и актуальное для меня)
Просто, вау! спасибо, очень полезно! Продолжайте развивать канал)
Спасибо❤️
наконец-то я подключил статику, ура. спасибо большое
как? через whitenoise?
у меня не подтянулись статичные файлы и я подключил whitenoise
А что не получилось с тем способом который в видео?
спасибо, то что надо!
Большое спасибо за данный ролик. Хоть и знакомо уже, но иногда под ужин запускаю посмотреть, что в ленте высветится. Сценарий очень хорошо проработан, материал доносится доступно. Думаю новички по таким видео материал будет очень легко усвоить.
Единственное, не в обиду конечно, но от слов паразитов (то есть) нужно постараться избавиться. Если первые минуты это ещё ничего, то потом начинает резать по ушам.
Не останавливайтесь на достигнутом, продолжайте своё светлое дело.
Хороший материал, полезный! Комфортно слушать приятный голос.
Нужно больше видео! Надеюсь автор над этим работает)
Спасибо♥️ Автор над этим работает!
Ждём некст видео!!
Огромное спасибо за видео! Наконец-то всё то, что нужно в одном видео! Для меня стало открытием ваш канал =) Подписался)
Спасибо за обратную связь 🤍
Огонь
🤍
сдаю сейчас проект и так жалела, что у вас нет видео про docker-compose. И тут такой подарок! Ваши видео про docker так мне помогли. Спасибо огромное ❤
на skillfactory?
удачи в сдаче проекта! и спасибо за обратную связь)
@@dansmirn2301на нем 😂
@@elena-deykunспасибо ❤
очень полезное видео)как-раз то что было нужно,правда для своего проекта пришлось попотеть немного )
Это радует)
Спасибо большое за ролик! Очень полезное видео про docker compose!!! Только у меня статика на беке не подтянулась видимо с nginx что то.
Можно залогиниться в nginx контейнер и проверить что папка правильно вмаунтилась и в ней есть нужные стили. Если не вмаунтилась, то смотрим в эту сторону, проверяем что собрали папку со стилями и как она маунтится в docker-compose. Если все верно, то смотрим на настройку nginx, код конфигурационного файла можно посмотреть на гитхабе, ссылка на который в описании, по идее там ничего менять не нужно. И смотрим логи самого nginx контейнера и куда улетают запросы на статику. Важно еще помнить что это 80 порт, а не порт приложения, к примеру 8080. Если не получится, то можете написать в телеграм
@@elena-deykun Я меня в проекте я в папку с nginx тоже dockerfile добавил и отдельно пути для admin и api прописал в конфиге.
location /admin/ {
proxy_set_header Host $http_host;
proxy_pass backend:8080/admin/;
} Примерно так!
Ты умница!!! Даже не представляю сколько инфы нужно переварить, что бы запилить такой видос!
Для начинающего будет немножко сложновато
Да бывает иногда траблы где автор скипает какие то команды(venv, requirements.txt) поэтому не все мб поймут а так впринципе если разобраться самому то видосик супер
лайк и подписка как говорится
Пасибки
:3
Да, к сожалению данное видео рассчитано на то что у человека уже есть какой-то бэкграунд для которого он собственно и будет использовать докер, без этого не удалось бы раскрыть тему в полной мере, либо был бы урок на 10 часов по всему подряд, а не по docker compose😅
@@elena-deykun да вы правы 😆
Видео офигенное!!! Будет гайд по k8s? :)
будет)
покажи как делать микросервисные монолиты и aws digitalocean
Можно делать платный курс по докер и это будет бестселлер 👍
many thanx, react приложение не коннектилось с бекэндом пока внешний порт не поменял с 8001 на 8000 в yml файле, браузер сафари
видео огонь!! есть только один вопрос, у вас используется заполнение бд из файла, но что если мне нужно будет добавить новые данные в бд вручную в уже запущенном образе, при перезапуске этого образа, те данные в бд, и в самом приложение джанго сохраняться или для этого нужно прописывать volume бд?
Да, для хранения состояния бд нужно использовать volume, иначе каждый раз будет состояние с нуля
RuntimeError: Model class django_celery_beat.models.SolarSchedule doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. - вот такая ошибка возникает при старте beats в Docker, при этом django_celery_beat в приложениях указан
Елена, подскажите пожалуйста такой момент по докеру. Целесообразно ли использовать докер вместо того чтобы поднимать nginx+питон и джанго(ну или любой другой язык с фреймворрком) на локальном хосте для разработки проекта? Или это всетаки инструмент для того чтобы завернуть в контейнер готовое приложение и демонстрировать? И как в таком случае конфигурироввть Volume для папок с кодом и для БД? Надеюсь смог сформулировать вопрос.
Тут все зависит от удобства и нужд. Чаще всего докер нужен на этапах когда приложение уже деплоят, либо же он разрабатывается несколькими людьми. То есть имея актуальный докер образ у вас будет возможность всегда его быстро развернуть и запустить на любой машине или сервере. Еще он полезен в случае если на локальной машине ведется параллельно несколько проектов и их зависимости / настойки nginx могут конфликтовать. Докер удобен тем что запускается вне зависимости от всего и в случае если где-то что-то сломалось в настройках, как это обычно бывает, докер от этого защищает и с этой точки зрения поддерживать локальную инфраструктуру может быть проще. Я обычно зависимости типа бд запускаю в докере, а само приложение локально, потому что так все же проще дебажить
@@elena-deykun большое спасибо за развернутый ответ.Мне например хочется держать на машине одновременно и Python+django, и PHP+symfony для разработки мелких учебных проектов - наверное тут докер вполне поможет? Вроде возможно БД и рабочую папку вынести в volume?
Возникает ошибка при установке postgres, невозможно соединиться с базой данных. Могу ли я вас скинуть логи для помощи?
кидай
Здравствуйте,видео очень полезное,но объясните пожалуйста,volume его главная задача это как я понял замена файлов(папок) в контейнера на локальные файлы на сервере
,почему вы не прописали staic_volume:./static объясните пожалуйста
Да, есть такой момент что если мы монтируем папку из хостовой системы в контейнер, то это bind mounts, их указывать в секции с volume не нужно. Но если мы хотим создать volume при помощи docker, чтобы к примеру сохранить состояние бд между запусками контейнеров, то в таком случае это named volume и он указывается в секции volumes или может создаваться при помощи команды docker volume create
Заснул и не проснулся
Надеюсь выспались👌
Когда пытаюсь сделать Dockerfile как у тебя, а именно то что в CMD, то начинает стучать к бд по неизвестно ip, в чём проблема?
скорее всего в том, что он где-то задан таким, по которому не достучаться
у меня такие же ошибки. не знаю как решить. контейнер еще не видит другой контейнер.. короче, полный п*№;"ц! решил попробовать докер, убил целый день и ничего не добился, даже запустить не удалось.
не понимаю как вы это делаете. уже все гайды на ютубе просмотрел, но я 1 особенный. не удается запустить контейнеры, вообще.
первое с чем столкнулся в строке CMD - не выполняется ни какая из команд. бьет ошибки, что неизвестная хрень написана.
убрал, окей.
потом ошибки , что не может найти базу данных. и что бы я ни делал - все равно не может ее найти. по имени сервиса из файла компоуз - не хочет.
часов 8 уже бьюсь об ошибку:
django.db.utils.OperationalError: [Errno -2] Name or service not known
а напиши в телеге под последним постом, прикрепи скрин)
автор боженька. НЕ ИНАЧЕ
Теперь можно откликаться на вакансии Сеньоров.
😅😅