Невозможно запустить приложение Python flask на другом порту с помощью docker -compose - PullRequest
1 голос
/ 13 июля 2020

Я запускаю приложение Flask в Python, используя docker -compose. Я могу запустить приложение Flask, используя порт 5000. Я пытаюсь запустить его на 6000, а также другое приложение Flask, работающее на 5000. Но я не могу запустить его на 6000 порте. Любая помощь приветствуется.

docker -compose.yml

version: '3.8'
services:
  web:
    build: ./web
    ports:
      - "6000:5000"

app.py

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

Dockerfile:

FROM python:3
COPY . /app
WORKDIR /app
RUN pip install -U pip
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]

requirements.txt

Flask==1.1.1

Порт 6000 прослушивает. Я могу установить соединение, выполнив команду n c с хостом и портом.

Я не могу запустить приложение на порту 6000.

Я получил следующее, когда нажал http: // # {HOST_IP}: 6000 в браузере

This site can’t be reached
The web page at http://#{HOST_IP}:6000/ might be temporarily down or it may have moved permanently to a new web address.

Ответы [ 2 ]

3 голосов
/ 13 июля 2020

6000 - небезопасный порт, поэтому браузер не разрешает доступ к приложению.

how-to-fix-err-unsafe-port-error-on- chrome -when -browsing-to-unsafe-ports

Но вы не должны разрешать этот порт, просто попробуйте опубликовать sh другой порт.

version: '3.8'
services:
  web:
    build: ./web
    ports:
      - "5001:5000"

Для отрицательного голоса

enter image description here

Here is Github Repo для проверки

git clone https://github.com/Adiii717/dockerize-flask-app.git
cd dockerize-flask-app/
# this will not work in the browser
PORT=6000 docker-compose up
1 голос
/ 14 июля 2020

Вы не определили ни одного маршрута. Сервер приложений не знает, какие маршруты доступны, и не знает, что вы хотите вернуть, поэтому вам нужно указать это.

Вот более полная версия app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

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

Пожалуйста, обратитесь к руководству Flask для минимального приложения .

...