Контейнеризацията е епична функция, която позволява на нас, разработчиците, да пакетираме приложение заедно с необходимите зависимости в една единица. След това можем да преместим контейнера и да внедрим приложението в различни среди, без да се налага да се притесняваме за съвместимостта.
Какво е колба?
Flask е минималистична и лека микро уеб рамка за Python. Той предоставя основната функция и библиотеки, които са необходими за изграждане на лекото уеб приложение с помощта на езика Python.
Flask следва интерфейса на Web Server Gateway или стандарта WSGI, който ни позволява да включим минималистичен дизайн с гъвкав шаблон, който може да обработва HTTP заявка и други функции. Например, Flask поддържа уеб функции като маршрутизиране, бази данни и други.
Предпоставки:
За да следвате кода и командите, предоставени в този урок, уверете се, че имате следните инструменти:
- Инсталиран интерпретатор на Python на вашата машина (препоръчва се версия 3.11 и по-нова)
- Инсталиран Docker двигател на хост машината (препоръчва се версия 23 и по-нова)
- Текстов редактор или 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.