0: И давайте посмотрим, на каком Порту. Кстати, мы запускали наш на 7 7 7 7 7. Давайте посмотрим, работает ли там, находится ли там что-либо. Давайте здесь сменим на 7 7 7 7.
1: И вуаля все работает точно также. То есть как мы запускали через docker run и прописывали там порты, прокидывали, так и здесь мы в докер компоузе указали, какие порты нужны, и, собственно они сами прокинулись и все должно работать. Единственное.
2: Что очень важно, конечно, это протестировать работу базы данных, например, у нас сейчас вообще нет никаких юзеров, нет никаких букингов. 1, что нужно сделать, это попробовать зарегистрироваться. Давайте это сделаем.
3: Укажем тестового пользователя.
4: И нам вернулось нулл, а это значит, что все хорошо, что прошёл коннект с базой данных, что пользователь был создан. Конечно, по хорошему. Здесь надо вернуть сообщение типа пользователь создан, и давайте попробуем теперь залогиниться под ним тест.
5: Тест тест и посмотрим на cookie.
6: Зайдём в приложение в cookie у нас здесь есть какие-то старые токены. Зайдём в execute. У нас появился здесь букинг эксесс токен. Мы с ним можем работать. Отлично. Большое спасибо и давайте попробуем.
7: У нас не получится ничего сделать, потому что у нас нету отелей. Да, действительно, это проблемка. Нужно базу данных забить какими-то данными, потому что мы просто не можем создать никакой букинг, потому что у нас нету отелей. То есть можно, например, здесь создать эндпоинт для вставки отелей.
8: Черви файл и я предлагаю вам это сделать. У меня есть тестовый набор данных. Вы можете создать собственно эндпоинт, загрузить список отелей, загрузить список комнат и затем их в таблице заинсертить и затем
9: Создавать уже букинги, получать их и так далее. Давайте сделаем экзекьют и здесь у нас все работает. То есть коннект с базой данных есть и все хорошо. Давайте ещё раз сделаем резюме. Я думаю, очень много информации, поэтому нужно прорезюмировать. Итак,
10: Сейчас мы создали докер компоуз. У нас несколько приложений. У нас есть база данных редис. Наше приложение фастапи есть селари флауэр. Кстати, давайте их проверим. Секундочку.
11: Давайте здесь, простите, забыл. Нам нужно проверить что работает ещё например, flower. Давайте на 5000 порт, также его прокинем ещё раз все запустим давайте перейдём на 5000 порт. 5, 5, 5, 5. Перезагру.
12: Грузим и у нас открывается флаур, все работает все отлично, к редису все подключено и может могут создаваться таски. Хорошо убедились, что все работает. Итак, мы создали ещё раз docker compose у нас есть несколько приложений, их нужно запускать вме.
13: Они работают вместе. Это 1 единое единый проект, скажем так, не стоит создавать отдельные 5 docker файлов под базу данных редис, приложение селари и так далее. И запускать их отдельно это неудобно. Неудобно с ними таким образом работать удобно.
14: Когда они вместе запускаются все и вместе выключаются, например, вот здесь, когда в консоли я нажал ctrl ц, у меня все 5 контейнеров в миг завершили исполнение в tucker компоуз мы пишем инструкции для запуска.
15: Каких-то образов эти образы мы берём либо с докерхаба да, это postgres redis, там python, всякие бывают ещё разные и также используем собственные образы, собственные образы мы пишем в докер файлах.
16: Указываем здесь на них путь для того, чтобы удобно смотреть, какие у нас образы, какие у нас контейнеры, мы даём им некоторые названия, потому что иначе докер их сам именует. Мы прокидываем сюда файлик с переменными окружения.
17: Энф нон дэф да, он существует рядом с файликом точка энф и отличается тем, что он для production уже для продакшена.
18: Чтобы общаться с вот этими сервисами база данных редис в этом файлике мы прописываем вместо local host, чего нельзя делать в докере, именно название сервисов дб и redis, также мы не забываем, что при поднятии базы данных нам нужн.
19: Данные логин, пароль и название базы. Помимо этого, если мы хотим работать с нашими приложениями, с нашей машины, прямо с нашего ноутбука компьютера, нам нужно прокинуть порты правый порт. Это на котором крутится приложение левый.
20: На котором вы хотите видеть его на своём компьютере. Да, например, я задал здесь для Букинга 7, 7, 7, 7 и все прекрасно работает. Для, для флаура можно было бы задать 6, 6, 6, 6. Все бы работало. И далее мы указали зависимости, потому что мы не можем запустить, например,
21: Раньше, чем redis ну наверное мы можем, но он скорее всего упадёт и тоже самое касается нашего приложения если база данных не поднятый редис, то скорее всего будет ошибка и нам придётся как-то это дело переиначивать, переигрывать.
22: Также мы вынесли в bash скрипты отдельные команды, чтобы нам было удобно, и таким образом создали докер компоуз файл, который позволяет наше приложение задеплоить куда-либо с docker compose есть некоторая проблема, что многие площадки не дают бесплатно его.
23: Его деплоить, потому что, ну, действительно можно задеплоить вообще все, что угодно. Это будет пожирать кучу оперативки. И те, кто бесплатно предоставляет доступ для разворачивания, не хотят, чтобы у них жралась куча оперативки и дискового пространства, поэтому
24: Мы чтобы не платить ни за какой хостинг, чтобы вы за него не платили, мы развернём лишь часть приложения это база данных редис и собственно фастапи без селари и flower.