Соединение восстанавливается, когда я закрепляю FlaskApp и получаю доступ к моему локальному хостуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Соединение восстанавливается, когда я закрепляю FlaskApp и получаю доступ к моему локальному хосту

Сообщение Anonymous »

Я создал flaskapp на Python.
Все работает хорошо, поэтому я решил его Dockerize.
Но когда я запускаю свое приложение с помощью Docker и пытаюсь получить доступ к http:/ /localhost:5000/ Я получаю сообщение «Соединение сброшено».
вот как выглядят мои файлы docker-compose и Dockfile.
docker-compose :

Код: Выделить всё

version: '3.8'

services:
elasticsearch:
container_name: elasticsearch
image: elasticsearch:8.15.2
ports:
- "9200:9200"
- "9300:9300"
environment:
- discovery.type=single-node
- xpack.security.enabled=false
healthcheck:
test: ["CMD", "curl", "-f", "http://elasticsearch:9200"]
interval: 30s
timeout: 10s
retries: 5
networks:
- mynetwork

flaskapp:
container_name: flaskapp
build: .
ports:
- "5000:5000"
depends_on:
elasticsearch:
condition: service_healthy
networks:
- mynetwork

networks:
mynetwork:
driver: bridge

Dockerfile:

Код: Выделить всё

FROM python:3.12

WORKDIR /IoT

COPY Pipfile Pipfile.lock /IoT/

RUN pip install pipenv && pipenv install --deploy --ignore-pipfile

COPY . /IoT/

EXPOSE 5000

CMD ["pipenv", "run", "python", "app.py"]
вот моя команда, которая запускает docker Compose:
  • docker-compose up -d
Важные файлы Python:

Код: Выделить всё

# app/__init__.py

from flask import Flask
from .routes import main_blueprint
from elasticsearch import Elasticsearch

def create_app():
app = Flask(__name__)

app.elasticsearch = Elasticsearch(["http://elasticsearch:9200"])

app.register_blueprint(main_blueprint)

return app

# app.py

from app import create_app

app = create_app()

if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)

когда я пытаюсь из своего Docker-контейнера использовать команду Curl http://localhost:5000
он возвращает мой шаблон index.html, поэтому он работает.
поэтому я попытался подключиться по IP-адресу моего контейнера и
вот как я это сделал: docker Inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{ end}}" flaskapp
но он по-прежнему не работает.
Я понимаю, что мой appflask работает правильно в моем докере, но это не так. понять, почему я не могу получить к нему доступ через свой компьютер через локальный хост.
спасибо за ваше время и помощь!

Подробнее здесь: https://stackoverflow.com/questions/790 ... by-my-loca
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»