Python Flask в Docker

Python Flask V Docker



В този урок ще научим как да контейнеризираме приложение на Python Flask с помощта на Docker.

Контейнеризацията е епична функция, която позволява на нас, разработчиците, да пакетираме приложение заедно с необходимите зависимости в една единица. След това можем да преместим контейнера и да внедрим приложението в различни среди, без да се налага да се притесняваме за съвместимостта.

Какво е колба?

Flask е минималистична и лека микро уеб рамка за Python. Той предоставя основната функция и библиотеки, които са необходими за изграждане на лекото уеб приложение с помощта на езика Python.







Flask следва интерфейса на Web Server Gateway или стандарта WSGI, който ни позволява да включим минималистичен дизайн с гъвкав шаблон, който може да обработва HTTP заявка и други функции. Например, Flask поддържа уеб функции като маршрутизиране, бази данни и други.



Предпоставки:

За да следвате кода и командите, предоставени в този урок, уверете се, че имате следните инструменти:



  1. Инсталиран интерпретатор на Python на вашата машина (препоръчва се версия 3.11 и по-нова)
  2. Инсталиран Docker двигател на хост машината (препоръчва се версия 23 и по-нова)
  3. Текстов редактор или IDE по ваш избор

След като дадените изисквания са изпълнени, можем да продължим с този урок.





Създайте приложението Flask

Както можете да предположите, първата стъпка е създаването на Python приложението, което искаме да контейнеризираме. За нашия случай го демонстрираме с минималистично приложение, което отпечатва „здравей свят“.

Създайте нова директория, за да съхранявате изходния код за вашия проект и създайте файл на Python с име „app.py“.



Редактирайте „app.py“ с любимия си текстов редактор или IDE и добавете кода за вашето приложение, както следва:

от колба импортиране Колба

ап = Колба ( __име__ )
@ ап. маршрут ( '/' )
деф Здравей свят ( ) :
връщане

Здравей, свят!

Създайте Docker файл

След това трябва да дефинираме инструкциите, които ни позволяват да пакетираме приложението като Docker изображение. Ние използваме Dockerfile, който съдържа всички инструкции и инструменти за настройка на изображението.

В същата директория като „hello.py“ създайте нов файл, наречен „Dockerfile“ без разширение. Изпълнете следната команда:

$ докоснете Dockerfile

Редактирайте файла и добавете кода, както следва:

Използвайте официалното изображение на Python като основно изображение.

ОТ python: 3.12 -rc-тънък
WORKDIR /приложение
КОПИЕ . /приложение
# Инсталирайте Flask
ИЗПЪЛНЕТЕ pip install --no-cache- Вие -r изисквания. текст
# Изложете порт 5000 за приложението Flask
ИЗЛОЖИ 5000
# стартирайте приложението Flask
CMD [ 'питон' , 'app.py' ]

Предишният Dockerfile изпълнява следните операции:

  • Използва официалното тънко изображение на Python 3.12 като основно изображение
  • Задава работната директория вътре в контейнера на „/app“
  • Копира съдържанието на директорията на проекта в контейнера
  • Инсталира Flask и всякакви други зависимости чрез стартиране на „pip install“ с помощта на файла „requirements.txt“
  • Разкрива порт 5000 за приложението Flask
  • Дефинира командата за стартиране на приложението Flask

Уверете се, че файлът „requirements.txt“ съществува в директорията на проекта и добавете съдържанието на файла, както е показано по-долу:

Колба == 2.3.3

В този случай уточняваме, че желаем да инсталираме Flask версия 2.3.3.

Изградете изображението на Docker

Сега, след като имаме готово приложението Flask и Dockerfile, можем да продължим и да изградим изображението със следната команда:

docker build -t flask-docker-app.

Уверете се, че сте в директорията на проекта, преди да изпълните предишната команда. Можете да замените приложението flask-docker с името, което искате да присвоите на вашето изображение.

Стартирайте Docker контейнера

С изграденото изображение на Docker можем да стартираме контейнера въз основа на изображението, като използваме командата „docker run“, както следва:

докер изпълнение -p 5000 : 5000 flask-docker-приложение

Това трябва да създаде контейнер и да съпостави порт 5000 от контейнера към порт 5000 на хост системата.

След като бъде изпълнено, отворете браузъра и отидете до http://localhost:5000 .

Трябва да видите „Hello, World!“ съобщение от приложението Flask.

Заключение

В този урок научихте как да контейнеризирате просто приложение на Python Flask с помощта на Docker.