Введение
В этом руководстве вы узнаете, как создать базовое приложение Flask с помощью Docker. Настройте свое приложение с помощью Dockerfile и управляйте образами с помощью автоматизированного процесса сборки.
В этом процессе вы также узнаете, как использовать несколько виртуальных сред Python и поддерживать порядок в исходном коде.
Что такое Фласк?
Flask — это легкая среда Python для создания веб-приложений. Это просто, гибко и прагматично. Его можно легко расширить с помощью расширений и плагинов. Flask можно использовать для создания небольших веб-сайтов или крупномасштабных сложных приложений.
Flask используется такими компаниями, как Pinterest, Twitter, Walmart и Cisco. Одно из распространенных применений Flask — API REST, используемые для взаимодействия с другими системами. Приложения, написанные на Flask, также можно легко развернуть на сервере или в облаке.
Создайте базовое приложение Flask
Прежде чем вы сможете создать образ Docker с вашим приложением, вам необходимо иметь базовое приложение, которое вы можете запускать локально или на сервере.
В этом разделе вы создадите базовое приложение с помощью Flask, а затем запустите его в контейнере Docker. Вы можете использовать свой любимый редактор для создания приложения или использовать следующую команду в своем терминале для создания нового приложения:
Начнем с создания нового каталога:
mkdir flask-app && flask-app
Затем создайте виртуальную среду Python, а затем активируйте среду:
python3 -m venv venv
source venv/bin/activate
Теперь установите модуль Flask Python в виртуальную среду:
pip install Flask
Следующая команда создаст файл Requirements.txt с пакетами, установленными в текущей среде. Этот файл полезен для установки модуля в дистрибутивах:
pip freeze > requirements.txt
Теперь создайте образец приложения Flask. Вы можете написать свой код в файле .py
и запустить его с помощью команды python:
vim app.py
Добавьте фрагмент ниже:
# Import flask module
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello to Flask!'
# main driver function
if __name__ == "__main__":
app.run()
Образец вашего приложения Flask готов. Вы можете запустить этот скрипт с Python прямо сейчас:
flask run --host 0.0.0.0 --port 5000
Теперь, когда у вас есть базовое приложение, вы можете запустить его в контейнере Docker, создав файл с именем Dockerfile в том же каталоге, что и ваш файл app.py.
Создайте Dockerfile для своего приложения Flask
Dockerfile — это файл, содержащий инструкции по созданию образа. Описывает весь процесс создания образа от установки приложения Python до создания контейнера.
Давайте создадим файл с именем Dockerfile в каталоге проекта. Это плавающее окно файла, в котором читаются инструкции по созданию образа:
vim Dockerfile
Добавьте следующий код:
FROM python:3-alpine
# Create app directory
WORKDIR /app
# Install app dependencies
COPY requirements.txt./RUN pip install -r requirements.txt
# Bundle app source
COPY..
EXPOSE 5000
CMD [ "flask", "run","--host","0.0.0.0","--port","5000"]
Сохраните файл и закройте его.
Затем создайте образ Docker, выполнив приведенную ниже команду. Здесь «фласк-приложение» — это имя изображения:
docker build -t flask-app.
Этот образ будет создан в локальном реестре образов. Затем вы можете создать контейнер Docker с помощью следующей команды:
sudo docker run -it -p 5000:5000 -d flask-app
Теперь убедитесь, что контейнер работает в вашей системе:
docker containers ls
Наконец, откройте браузер и подключитесь к локальному хосту через порт 5000 (или используйте указанный вами порт). Вы должны увидеть только что созданное приложение.
Вы можете использовать Dockerfile для автоматизации создания и обновления образа.
Вывод
В этом руководстве вы узнали, как создать базовое приложение Flask и создать с его помощью образ Docker. Вы также узнали, как создать частный реестр и автоматизировать создание и обновление образа.