@Nulltiton

Почему не открывается flask приложение в Docker?

Есть просто приложение на Flask:
from flask import Flask, jsonify
import random

app = Flask(__name__)

@app.route('/', methods=['GET'])
def get_temperature():
    # Генерация случайной температуры от -10 до 40 градусов Цельсия
    temperature = round(random.uniform(-10, 40), 2)
    
    # Формирование JSON-ответа
    response = {
        'temperature': temperature,
        'unit': 'Celsius'
    }

    print(temperature)

    return jsonify(response)

if __name__ == '__main__':
    app.run(debug=True, port=5023)

Dockerfile:
# Выкачиваем из dockerhub образ с python версии 3.9
FROM python:3.9
# Устанавливаем рабочую директорию для проекта в контейнере
WORKDIR /api

# Устанавливаем порт, который будет использоваться для сервера
EXPOSE 5023

# Скачиваем/обновляем необходимые библиотеки для проекта 
COPY requirements.txt ./


RUN pip3 install --upgrade pip -r requirements.txt
# |ВАЖНЫЙ МОМЕНТ| копируем содержимое папки, где находится Dockerfile, 
# в рабочую директорию контейнера
COPY . /app

Docker Compose:
version: '3'
services:
  flask:
    # Путь до Dockerfile
    build: ./api
    # Имя для создаваемого контейнера
    container_name: api-flask
    # Создание переменных окружения в контейнере
    environment:
      # для отладки (при запуске в релиз убрать!)
      - FLASK_ENV=development
      ## Позволяет отслеживать процесс работы приложения в командной строке
      - PYTHONUNBUFFERED=True                   
      ##
    # Перезапускаем сервис в случае падения 
    restart: on-failure
    # Прокладывам путь для файлов. Все файлы, которые хранятся у вас в 
    # директории ./api, появятся в директории контейнера /api
    volumes:
      - ./api:/api
    # Открываем порт в контейнер
    # Порт, который будет смотреть наружу : порт который используется внутри контейнера
    ports:
      - "5023:5023"
    command: python api.py

requirements.txt:
flask==3.0.2
Расположение файлов:
65c90b007aa37500451530.png
Всю информацию взял с этой (https://habr.com/ru/companies/megafon/articles/541826/) статьи на хабре. К сожалению при обращении к localhost:5023 получаю "Не удается получить доступ к сайту". Подскажите, почему происходит такая проблема и как это исправить?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@q2digger
никого не трогаю, починяю примус
Поменяй в коде последнюю строку вот так что бы было
app.run(debug=True, host='0.0.0.0', port=5023)
ну и после этого соответственно
docker compose build
docker compose up -d
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы