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

时间:2018-12-20 16:25:37

标签: docker flask docker-compose

还有另一个docker / flask问题。 我无法从docker-compose中的另一个容器连接我的烧瓶应用程序。

我的 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

实际上,这2个容器应该互相相互查看,并且确实,当我查看app的日志时,我可以看到来自test的请求。 但是他们的回答是404。

我在这里做什么错了?

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

1 个答案:

答案 0 :(得分:2)

这是因为您的配置

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

您的烧瓶认为它的名字是0.0.0.0:5000,因此没有回应其他人。

要进行验证,请通过测试致电curl -H Host:0.0.0.0:5000 -i http://app:5000

您可以删除此配置并使用

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