Есть просто приложение на 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
Расположение файлов:
Всю информацию взял с этой (
https://habr.com/ru/companies/megafon/articles/541826/) статьи на хабре. К сожалению при обращении к
localhost:5023 получаю "Не удается получить доступ к сайту". Подскажите, почему происходит такая проблема и как это исправить?