Docker Невозможно подключиться к Flask - PullRequest
1 голос
/ 06 марта 2020

Я пытаюсь переместить простое приложение flask в docker, но мое приложение flask не доступно из браузера.

дерево проектов

├───project
│   │   dockerfile
│   │   requirements.txt
│   │
│   └───app
│           server.py

dockerfile

FROM ubuntu:latest

RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential

ADD . /app
WORKDIR /app

RUN pip install -r requirements.txt

ENTRYPOINT ["python"]
CMD ["app/server.py", "--host=0.0.0.0"]

needs.txt

Flask==0.12.2

server.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Flask Dockerized'

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

docker команды:

docker build -t test-server:latest .
docker run -d -p 5000:5000 test-server

docker журналы

 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 224-123-338

docker - версия: Docker version 19.03.5, build 633a0ea

docker пс

1c54ccfc61bf        test-server         "python app/server.p…"   6 seconds ago       Up 5 seconds        0.0.0.0:5000->5000/tcp   elated_solomon

1 Ответ

3 голосов
/ 06 марта 2020

Установка этого параметра для запуска в режиме отладки путем установки app.run(debug=True) показывает, что хост, который вы устанавливаете, переопределяется:

❰mm92400❙~/test❱✔≻ docker run -it -p 5000:5000 testimage
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 963-222-479

Поэтому установите хост как app.run(host='0.0.0.0'):

❰mm92400❙~/test❱✔≻ docker run -it -p 5000:5000 testimage
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 200-559-808

И подключение браузера работает

172.17.0.1 - - [06/Mar/2020 15:59:42] "GET / HTTP/1.1" 200 -
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...