Как разместить проект Python Flask на своем NAS с помощью Docker

    0
    2

    [ad_1]

    Если у вас есть NAS, то вы наверняка уже опробовали кучу разных проектов. С его помощью вы можете многое сделать, особенно если вы создали свою собственную и управляете всей машиной и операционной системой. Даже если вы этого не сделаете, большинство из них, по крайней мере, поддерживают Docker. Docker — это контейнерная система, которая позволяет запускать различные приложения отдельно друг от друга в контролируемой среде. Это отличный и простой способ развертывания приложений.


    Один из проектов, который вам может быть интересен, — это размещение собственного веб-сайта на NAS, и мы покажем вам, как именно это сделать! Вы сможете написать базовый веб-сервер в Flask, контейнеризировать его с помощью Docker, а затем перенести этот контейнер на свой NAS.

    Мы опубликовали исходный код этого приложения на GitHub, и вы можете ознакомиться с ним в конце этой статьи! Для работы с этим руководством вам понадобится установленный Docker.

    Как разместить приложение Python Flask на вашем NAS с помощью Docker

    Шаг 1. Напишите код

    Код приложения Python Flask и код index.html


    Написать код для приложения Python Flask довольно просто. Все, что вам нужно сделать, это создать программу, которая может прослушивать порт, идентифицироваться как приложение Flask, а затем обслуживать HTML-шаблон. Этот HTML-файл должен находиться в папке /templates внутри папки вашего проекта.

    Вам необходимо убедиться, что эти файлы называются app.py для вашего кода Python и index.html для вашего HTML-кода. Поместите их в соответствующие папки и убедитесь, что ваш код такой же (или похожий), как на скриншоте выше. Вам нужно будет обратить особое внимание на отступы в Python. Также убедитесь, что у вас установлен модуль Flask, выполнив следующую команду:

    pip3 install flask

    После установки он уже должен быть в рабочем состоянии на вашем компьютере!

    Шаг 2. Создание контейнера Docker

    Параметры Dockerfile, определяющие используемую версию Python, и другие переменные.


    Существует два способа создания контейнера Docker, и мы рекомендуем использовать команду сборки Docker. Создайте Dockerfile и заполните его, и вы сможете использовать все параметры на снимке экрана выше. Вы можете изменить «Мир» на любое имя, которое вы хотите, и отсутствие определения этой переменной означает, что Docker назовет среду за вас.

    Шаг 3. Создайте файл требований

    Файл требований для Python Flask

    Ваш файл требований будет содержать необходимые модули Python, которые понадобятся вашему контейнеру для запуска приложения. Для этой базовой программы вам понадобится только Flask, а в моем случае мне нужно было использовать более старую версию Werkzeug. Создайте файл require.txt в той же папке, что и ваши app.py и Dockerfile, и убедитесь, что он соответствует скриншоту выше.


    Для этого урока я использую более старую версию Flask, но Flask 3.0 в настоящее время отсутствует. Вы можете обновить зависимость здесь, если знаете, что делаете.

    Шаг 4. Создайте контейнер Docker и сохраните его.

    Запуск сборки Docker

    Теперь вы готовы к работе! Запустите следующую команду в терминале в том же окне, чтобы создать контейнер Docker.

    docker build -t my-flask-app .

    Это создаст ваше приложение Docker. Теперь вы можете запустить его на своем компьютере, чтобы убедиться, что он работает с:

    docker run -p 5000:5000 my-flask app

    Все идет хорошо, вы можете перейти по адресу 127.0.0.1:5000 в своем браузере, и все должно работать! Если этого не произошло, вернитесь к этому руководству и посмотрите, не пропустили ли вы какие-либо шаги.

    Сохранение Docker-контейнера в файл


    Теперь вы можете сохранить свой Docker-контейнер с помощью следующей команды, чтобы вывести его в файл, который можно перенести на свой NAS.

    docker save -o my-flask-app.tar my-flask-app

    Вот и все, вы создали свое первое приложение Docker!

    Шаг 5. Перенесите образ Docker на NAS.

    truenas-запуск-docker-образ

    Источник: TrueNAS

    Наконец, вам нужно будет перенести этот образ Docker на свой NAS. В зависимости от используемого вами NAS это должно быть легко, но потребует разных шагов. На приведенном выше снимке экрана вы можете увидеть опцию «Запустить образ Docker» в TrueNAS, и это так же просто, как скопировать файл Docker и передать ему правильные параметры для его запуска.

    Однако для Synology и даже Ugreen мы рекомендуем ознакомиться с инструкциями по использованию Docker на этих машинах. Вы сможете запустить свой контейнер, но то, как именно, зависит от шагов, которые компания планирует для этого сделать.


    Docker — безопасный и простой способ запуска программ на вашем NAS.

    Поиграйтесь и с docker-compose.

    Югрин-НАС-2

    Мы включили файл docker-compose в GitHub для этого проекта, и вы можете поэкспериментировать, пытаясь заставить его работать! Это еще один способ передать параметры, необходимые для выполнения контейнера, в Docker при его сборке. С этим стоит разобраться, поскольку файл docker-compose можно использовать для нескольких разных проектов, что может быть полезно, если вы начнете экспериментировать с другими приложениями Flask.

    Связанный
    8 невероятных проектов, которые я выполнил, используя только свой NAS

    NAS — это ворота в мир вычислений, и он может многому вас научить.

    [ad_2]

    Предыдущая статьяКак iPadOS сдерживает возможности нового Apple iPad Pro М4
    Следующая статьяVivo X100 Ultra будет использовать еще одну камеру от Samsung
    Петр Григорин
    Интересуется софтом, разработкой и использование новых приложений, технология искусственного интеллекта. Этот писатель - человек с техническими знаниями, который увлечен разработкой программного обеспечения и использованием новых приложений. Его особенно интересуют технологии искусственного интеллекта и то, как они могут быть использованы для улучшения различных отраслей промышленности и повседневной жизни. Обладая прочной основой в области информатики и острым взглядом на инновации, этот писатель обязательно привнесет ценные идеи и соображения в любую дискуссию на эти темы. Пишет ли он о последних открытиях в области ИИ или исследует потенциал новых программных инструментов, его работа обязательно будет увлекательной и заставляющей задуматься.