Мы собираем файлы cookie и применяемрекомендательные технологии

Перенос локальных Flask приложений в Docker - 579 - МТС Exolve

Перенос локальных Flask приложений в Docker

Берем пример с моей реализации приложений в  домашнем каталоге kali

Чтобы запускать Flask-приложения, расположенные в локальных подкаталогах /home/kali, через Docker, следуйте этой инструкции. Она подходит для всех приложений, находящихся в подкаталогах, таких как /home/kali/project_alpha, /home/kali/dashboard_beta (как реальный пример)

Шаг 1. Создайте Dockerfile и requirements.txt

Для каждого приложения создайте два файла:

  • Dockerfile — описывает, как создать Docker-образ.
  • requirements.txt — список зависимостей приложения (например, Flask==3.0.3).

Пример Dockerfile:

Код
FROM python:3.9-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "app.py"]
EXPOSE <номер_порта>

Замените <номер_порта> на порт, используемый приложением, например, 8000 или 8001.

Шаг 2. Сборка Docker-образа

Перейдите в директорию приложения (например, /home/kali/project_alpha) и выполните команду для сборки Docker-образа.

Команда для сборки Docker-образа:

Код
cd /home/kali/<папка_приложения>
sudo docker build -t <название_образа> .

Пример для приложения в папке /home/kali/project_alpha:

Код
cd /home/kali/project_alpha
sudo docker build -t project_alpha .


Шаг 3. Запуск Docker-контейнера

После успешной сборки Docker-образа, запустите контейнер, пробросив порты и смонтировав файлы приложения, чтобы можно было редактировать их на хосте.

Команда для запуска Docker-контейнера:

Код
sudo docker run -d -p <порт_хоста>:<порт_контейнера> --name <название_контейнера> --restart=always \\\\
-v /home/kali/<папка_приложения>:/app <название_образа>

Пример для приложения на порту 8000 в папке /home/kali/project_alpha:

Код
sudo docker run -d -p 8000:8000 --name project_alpha --restart=always \\\\
-v /home/kali/project_alpha:/app project_alpha


Шаг 4. Убедитесь, что Flask-приложение настроено на прослушивание всех интерфейсов

В файле app.py вашего Flask-приложения убедитесь, что оно настроено на прослушивание всех сетевых интерфейсов:

Код
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=<номер_порта>)

Замените <номер_порта> на нужный порт, например, 8000 или 8001.

Повторите для других приложений

Для каждого приложения в /home/kali выполните эти же шаги:

  1. Создайте Dockerfile и requirements.txt.
  2. Соберите Docker-образ.
  3. Запустите Docker-контейнер с соответствующими портами.

Не забываем проверить настройки фаервола на наличие открытого нужного порта

2
120
Открытая тема
0 баллов

Для того, чтобы оставлять комментарии, необходимо пройти авторизацию

Авторизоваться
Полезная и подробная инструкция!
moderator
moderator
0 баллов
30 октября 2024 в 16:12
Спасибо за публикацию!
community
community
0 баллов
05 ноября 2024 в 07:32