Docker中运行的Python代码与NGROK不兼容

Docker中运行的Python代码与NGROK不兼容,python,docker,Python,Docker,一般来说,对编码来说是新的,尤其是docker&python,所以请原谅任何明显的错误。我已经为一个特定的问题挣扎了好几个星期了,也许这里有人能帮我 我们想要使用的Web服务需要通过Python连接器连接到PostgreSQL数据库。这个连接器基本上比较webservice上输入的数据和DB中的数据,并匹配变量 现在,我正在AWS中运行数据库,并已成功地将示例数据上载到数据库中。我还通过localhost:5000端口在Docker中运行了connector.py代码。现在我想连接所有部分,我

一般来说,对编码来说是新的,尤其是docker&python,所以请原谅任何明显的错误。我已经为一个特定的问题挣扎了好几个星期了,也许这里有人能帮我

我们想要使用的Web服务需要通过Python连接器连接到
PostgreSQL
数据库。这个连接器基本上比较webservice上输入的数据和DB中的数据,并匹配变量

现在,我正在AWS中运行数据库,并已成功地将示例数据上载到数据库中。我还通过
localhost:5000
端口在Docker中运行了connector.py代码。现在我想连接所有部分,我正在运行Ngrok来隧道我的
localhost:5000
,我告诉web服务连接到
Ngrok
给我的https地址

不幸的是,我收到了
“未能完成隧道连接:连接已成功隧道,但客户端未能建立到localhost:5000的连接”

这是港口问题吗

这是我的Dockerfile:

FROM python:3.7

WORKDIR /src/connector.py

COPY requirements.txt ./
RUN apt-get update && apt-get install -y libpq-dev gcc
RUN pip3 install psycopg2~=2.7.7
RUN apt-get autoremove -y gcc
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./connector.py" ]
有什么帮助吗,或者我可以补充什么让我的问题更容易理解


BR&感谢您的帮助

当您在本地笔记本电脑上运行docker时,它通常在虚拟机中运行。您能确保端口映射到机器内部吗?您也可以尝试在docker容器内使用ngrok。您是在docker容器内还是在本地计算机上运行ngrok?如果是后者,您应该首先将容器的端口5000绑定到本地端口5000。我在docker容器外部但在我的机器上本地运行ngrok。我还在dockerfile中暴露了端口5000,但不幸的是,我仍然收到一个错误的网关错误。我假设connector.py正在端口5000上运行,因为代码的最后一行是:app.run(host='0.0.0',port=5000)