繁体   English   中英

无法使用 docker-compose 在不同端口中运行 Python flask 应用程序

[英]Unable to run Python flask app in different port using docker-compose

我正在使用 docker-compose 在 Python 中运行 Flask 应用程序。 我能够使用 5000 端口运行 Flask 应用程序。 除了在 5000 上运行的另一个 Flask 应用程序之外,我正在尝试在 6000 上运行它。但我无法在 6000 端口上运行它。 任何帮助,将不胜感激。

docker-compose.yml

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

应用程序.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"]

要求.txt

Flask==1.1.1

端口 6000 正在侦听。 我可以通过使用主机和端口执行 nc 命令来成功连接。

我无法在端口 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.

6000是不安全的端口,这就是浏览器不允许访问应用程序的原因。

如何修复错误-不安全端口-chrome-when-browsing-to-unsafe-ports

但是你不应该允许这个端口,只是尝试发布另一个端口。

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

对于downvoter

在此处输入图像描述

这是Github 回购来验证这一点

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

您还没有定义任何路线。 应用服务器不知道哪些路由可用,也不知道您要返回什么,因此您需要指定它。

这是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 教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM