[ad_1]
Если у вас есть NAS, то вы наверняка уже опробовали кучу разных проектов. С его помощью вы можете многое сделать, особенно если вы создали свою собственную и управляете всей машиной и операционной системой. Даже если вы этого не сделаете, большинство из них, по крайней мере, поддерживают Docker. Docker — это контейнерная система, которая позволяет запускать различные приложения отдельно друг от друга в контролируемой среде. Это отличный и простой способ развертывания приложений.
Один из проектов, который вам может быть интересен, — это размещение собственного веб-сайта на NAS, и мы покажем вам, как именно это сделать! Вы сможете написать базовый веб-сервер в Flask, контейнеризировать его с помощью Docker, а затем перенести этот контейнер на свой NAS.
Мы опубликовали исходный код этого приложения на GitHub, и вы можете ознакомиться с ним в конце этой статьи! Для работы с этим руководством вам понадобится установленный Docker.

Руководство по контейнерам Linux: введение в контейнеры
Контейнеры уже много лет являются модным словом… но что они собой представляют?
Как разместить приложение Python Flask на вашем NAS с помощью Docker
Шаг 1. Напишите код
Написать код для приложения Python Flask довольно просто. Все, что вам нужно сделать, это создать программу, которая может прослушивать порт, идентифицироваться как приложение Flask, а затем обслуживать HTML-шаблон. Этот HTML-файл должен находиться в папке /templates внутри папки вашего проекта.
Вам необходимо убедиться, что эти файлы называются app.py для вашего кода Python и index.html для вашего HTML-кода. Поместите их в соответствующие папки и убедитесь, что ваш код такой же (или похожий), как на скриншоте выше. Вам нужно будет обратить особое внимание на отступы в Python. Также убедитесь, что у вас установлен модуль Flask, выполнив следующую команду:
pip3 install flask
После установки он уже должен быть в рабочем состоянии на вашем компьютере!
Шаг 2. Создание контейнера Docker
Существует два способа создания контейнера Docker, и мы рекомендуем использовать команду сборки Docker. Создайте Dockerfile и заполните его, и вы сможете использовать все параметры на снимке экрана выше. Вы можете изменить «Мир» на любое имя, которое вы хотите, и отсутствие определения этой переменной означает, что Docker назовет среду за вас.
Шаг 3. Создайте файл требований
Ваш файл требований будет содержать необходимые модули Python, которые понадобятся вашему контейнеру для запуска приложения. Для этой базовой программы вам понадобится только Flask, а в моем случае мне нужно было использовать более старую версию Werkzeug. Создайте файл require.txt в той же папке, что и ваши app.py и Dockerfile, и убедитесь, что он соответствует скриншоту выше.
Для этого урока я использую более старую версию Flask, но Flask 3.0 в настоящее время отсутствует. Вы можете обновить зависимость здесь, если знаете, что делаете.
Шаг 4. Создайте контейнер Docker и сохраните его.
Теперь вы готовы к работе! Запустите следующую команду в терминале в том же окне, чтобы создать контейнер Docker.
docker build -t my-flask-app .
Это создаст ваше приложение Docker. Теперь вы можете запустить его на своем компьютере, чтобы убедиться, что он работает с:
docker run -p 5000:5000 my-flask app
Все идет хорошо, вы можете перейти по адресу 127.0.0.1:5000 в своем браузере, и все должно работать! Если этого не произошло, вернитесь к этому руководству и посмотрите, не пропустили ли вы какие-либо шаги.
Теперь вы можете сохранить свой Docker-контейнер с помощью следующей команды, чтобы вывести его в файл, который можно перенести на свой NAS.
docker save -o my-flask-app.tar my-flask-app
Вот и все, вы создали свое первое приложение Docker!
Шаг 5. Перенесите образ Docker на NAS.
Источник: TrueNAS
Наконец, вам нужно будет перенести этот образ Docker на свой NAS. В зависимости от используемого вами NAS это должно быть легко, но потребует разных шагов. На приведенном выше снимке экрана вы можете увидеть опцию «Запустить образ Docker» в TrueNAS, и это так же просто, как скопировать файл Docker и передать ему правильные параметры для его запуска.
Однако для Synology и даже Ugreen мы рекомендуем ознакомиться с инструкциями по использованию Docker на этих машинах. Вы сможете запустить свой контейнер, но то, как именно, зависит от шагов, которые компания планирует для этого сделать.
Docker — безопасный и простой способ запуска программ на вашем NAS.
Поиграйтесь и с docker-compose.
Мы включили файл docker-compose в GitHub для этого проекта, и вы можете поэкспериментировать, пытаясь заставить его работать! Это еще один способ передать параметры, необходимые для выполнения контейнера, в Docker при его сборке. С этим стоит разобраться, поскольку файл docker-compose можно использовать для нескольких разных проектов, что может быть полезно, если вы начнете экспериментировать с другими приложениями Flask.

8 невероятных проектов, которые я выполнил, используя только свой NAS
NAS — это ворота в мир вычислений, и он может многому вас научить.
[ad_2]