Невозможно открыть приложение dockerized flask в браузере (MacOS) - PullRequest
0 голосов
/ 05 марта 2020

Я довольно новичок в docker и flask. В качестве тестового примера я пытаюсь докернизировать приложение flask, которое возвращает «привет мир» в браузере на MacOS. У меня есть следующие файлы - app.py, needs.txt, Dockerfile. Содержимое сценария и файлы приведены ниже.

app.py:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return  "hello world!"

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

needs.txt

Flask==1.0.3

Dockerfile

FROM  python:3.7.2-slim

WORKDIR /app

COPY . /app

RUN pip install --no-cache-dir -r  requirementx.txt


CMD ["python", "app.py"]

Я следовал стандартной процедуре стыковки приложения flask:

docker build -t flask app:latest .

docker run -d -p 5000:5000 flask app

Основываясь на предыдущей проблеме, о которой сообщалось в StackOverflow, я посмотрел на решение, предоставленное по следующей ссылке: Docker - Не удалось подключиться к локальному порту 4000: соединение отклонено

curl http://$(docker-machine ip default):5000

При этом появилось следующее сообщение об ошибке:

curl: (52) Empty reply from server

Я даже последовал предложению, изменив app.run() на app.run(host='0.0.0.0'), поскольку я хочу, чтобы контейнер был доступен извне, как указано в этой ссылке: Развертывание минимального flask приложения в docker - проблемы с подключением к серверу

Я запустил команда: curl -i http://0.0.0.0:5000, которая также выдает то же сообщение об ошибке -

curl: (52) Empty reply from server

Я даже попытался: curl -H Host:0.0.0.0:5000 -i http://app:5000, который дал мне следующее сообщение об ошибке:

curl: (6) Could not resolve host: app

Docker было установлен и протестирован со следующим набором ands и все прошло гладко:

$ brew install docker docker-machine
$ brew cask install virtualbox
$ docker-machine create --driver virtualbox default
$ docker-machine env default
$ eval "$(docker-machine env default)"
$ docker run hello-world

Это чрезвычайно простой код. Но я не уверен, почему я сталкиваюсь с этими проблемами здесь. Любая помощь будет принята с благодарностью.

...