代码之家  ›  专栏  ›  技术社区  ›  mRcSchwering

到达docker compose中的flask应用程序时出现问题

  •  2
  • mRcSchwering  · 技术社区  · 6 年前

    还有一个docker/flask问题。 docker-compose .

    我的 dockerfile 设置烧瓶应用程序,如:

    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 进来了。

    我做错了什么?

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

    1 回复  |  直到 6 年前
        1
  •  5
  •   Siyu Zeeshan Akhter    6 年前

    这是因为你的配置

    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')