繁体   English   中英

docker-compose flask 网络问题

[英]docker-compose flask network issue

我有一个 python flask 项目,它应该是一个用于内部网络的 web 应用程序。 它位于以 docker-compose 文件开头的 docker 映像中。

有时我运行它时,flask 服务器没有收到来自外界的消息。 我认为 docker-compose 自动创建的 docker 网络一定有问题。 每当出现此问题时,我都必须重新启动盒子,然后将容器重新启动,它会自行修复。

有没有其他人看过这个?

当我说它没有看到来自盒子外部的连接时,我的意思是 HTTP 请求永远不会到达 flask 服务器。 I can attempt to go to the URL corresponding to the flask server from a different machine and the flask server sees nothing. 但是,如果我尝试从盒子内部(不是在容器内,而是在容器运行的盒子上)发送 HTTP GET 请求,flask 服务器会响应。

所以这让我相信 docker-compose 正在创建一个 docker 网络,该网络未正确配置以允许容器侦听外部请求。

这是我的 docker 撰写文件:

version: '3.7'
services:
  falcon:
    image: "company.com/internal/falcon:0.1"
    container_name: falcon
    env_file:
      - ~/.env
    ports:
      - "80:80"
    volumes:
      - ${REPOS}/falcon:/app
    command: /conda/bin/falcon start

这尚未经过广泛测试,但似乎已经解决了问题:

version: '3.7'
services:
  falcon:
    image: "company.com/internal/falcon:0.1"
    container_name: falcon
    network_mode: bridge  # also tried host, I think bridge is right.

另一种解决方案似乎省略了上面的 network_mode 并将其放在下面:

networks:
    default:
        external:
            name: prod_default

我仍然不知道它为什么会发生,但这两种解决方案似乎都可以解决它。

暂无
暂无

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

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