Все работает хорошо, поэтому я решил его 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
Код: Выделить всё
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 up -d
Код: Выделить всё
# 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)
он возвращает мой шаблон index.html, поэтому он работает.
поэтому я попытался подключиться по IP-адресу моего контейнера и
вот как я это сделал: docker Inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{ end}}" flaskapp
но он по-прежнему не работает.
Я понимаю, что мой appflask работает правильно в моем докере, но это не так. понять, почему я не могу получить к нему доступ через свой компьютер через локальный хост.
спасибо за ваше время и помощь!
Подробнее здесь: https://stackoverflow.com/questions/790 ... by-my-loca