Flask Приложение не работает при работе на docker контейнере - PullRequest
0 голосов
/ 17 марта 2020

Я новичок в docker и Flask, и у меня возникает проблема при попытке запустить приложение. Браузер сообщает, что сайт (172.17.0.2:5000) недоступен. Для всех, кто интересуется, Dockerfiles:

FROM ubuntu

RUN apt-get update && apt-get install -y python3 python3-pip

RUN pip3 install flask

RUN mkdir -p /opt/MyApp-test

COPY . /opt/MyApp-test

WORKDIR /opt/MyApp-test

EXPOSE 5000

ENTRYPOINT python3 main.py
CMD flask run --host 0.0.0.0

main.py:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return 'IT WORKED! I AM RUNNING FROM A DOCKER CONTAINER!!!'


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

И когда я запускаю контейнер, я получаю:

(base) daniellombardi@Daniels-MacBook-Pro MyApp-test % docker run 2625
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

I попробуйте go до http://127.0.0.1:5000/, не удается подключиться, затем я проверяю контейнер, чтобы получить его IP-адрес, и он говорит 172.0.1 вместо 127.0.0.1:5000, но также не может подключиться. И приложение работает, когда я запускаю его на своем компьютере.

1 Ответ

0 голосов
/ 18 марта 2020

Вы должны просто привязать открытый порт внутри вашего контейнера к порту в docker хосте при вызове docker run, поэтому docker run должен называться следующим образом:

docker run 2625 -p 5000:5000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...