gpt4 book ai didi

docker - 在 docker-compose 中访问 Flask 应用程序时出现问题

转载 作者:行者123 更新时间:2023-12-03 16:02:31 24 4
gpt4 key购买 nike

又一个 docker/flask 问题。我在从 docker-compose 中的另一个容器连接到我的 Flask 应用程序时遇到问题。

我的 dockerfile 设置了一个 flask 应用程序,如下所示:

COPY ./ /app/

WORKDIR /app

RUN find -name "*.pyc" -delete && \
pip3 install -r requirements.txt

EXPOSE 5000

CMD ["python3", "app.py"]

应用程序运行在 0.0.0.0:5000 上,docker-compose.yml 如下所示:

version: '3'

services:

app:
build: .
ports:
- "5000:5000"

test:
image: alpine:3.8

现在在 docker-compose up 之后,我可以像这样从主机curl:

curl -i http://0.0.0.0:5000
...
200 - ok

但如果我跳入测试容器,我会收到 404:

docker-compose run test sh
# apk --update add curl
# curl -i http://app:5000
...
404 - not found

实际上这两个容器应该看到彼此,事实上,当我查看app的日志时,我可以看到来自test的请求进来。但是他们得到了 404 的回答。

我在这里做错了什么?

顺便说一句,我这里有一个最小的例子:https://github.com/mRcSchwering/flask_docker-compose

最佳答案

这是因为你的配置

app.config['SERVER_NAME'] = '0.0.0.0:5000'

您的 Flask 认为它的名字是 0.0.0.0:5000,因此不响应其他人。

要验证,请从测试中调用 curl -H Host:0.0.0.0:5000 -i http://app:5000

您可以删除此配置并使用

运行服务器
app.run(host='0.0.0.0')

关于docker - 在 docker-compose 中访问 Flask 应用程序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com