当前位置: 首页 > 知识库问答 >
问题:

使用docker-compose重置连接的flask应用程序[重复]

冯曾笑
2023-03-14

我正在使用docker-compose构建一个小的烧瓶服务和它使用的数据库。我的docker-compose.yml如下所示:

version: '3.7'
services:
    database:
        image: postgres:10.5
        restart: always
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres
        logging:
          options:
            max-size: 10m
            max-file: "3"
        ports:
          - '5438:5432'
        volumes:
          - ./postgres-data:/var/lib/postgresql/data
          - ./sql/schema.sql:/docker-entrypoint-initdb.d/schema.sql
    web:
      build: .
      ports:
        - "5000:5000"
      depends_on:
        - database
      volumes:
        - .:/code
      environment:
        - FLASK_APP=app.py

我的应用程序文件使用了另一个模块中的一些方法,我试图像往常一样导入这些方法,看起来如下所示

但是,在我使用

docker-compose up --build database web
    null

共有1个答案

郑卜鹰
2023-03-14

在http://127.0.0.1:5000/上运行(按Ctrl+C退出)

将侦听IP地址更改为0.0.0.0

127.0.0.1localhost中的容器,但不是主机的localhost。您无法将容器的localhost连接到容器外部

    null
$ flask run --host=0.0.0.0
    null
[server:main]
...
host = 0.0.0.0
port = 5000
...
    null
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000)
 类似资料:
  • 当在docker容器中实现Java应用程序和在自己的docker容器中配置的MySQL数据库以及Docker Comuse时,在使用jdbc创建到数据库的连接时,Java应用程序中总是会出现以下错误: 相应的Docker文件和Java代码如下所示:Docker compose。yml:版本:“3.7” Java中的JDBC连接: Dockerfile: 有人有或知道这个问题吗?谢谢你的回答。

  • 在我们进行负载测试(使用jmeter)之前,一切都很好。当我们模拟100个并发用户时,在3-4分钟后。jmeter开始记录SocketException,连接重置。当我们检查应用程序日志(我们记录应用程序内部的所有异常)和系统事件时,我们什么也找不到。 我们没有对web层的性能采取任何特殊措施。但是在作为wcf应用程序的应用层上,我们使用了每次调用/多并发。我们在应用层上使用了以下配置: ...

  • 当试图用docker-compose将我的express应用程序连接到mongo容器时,连接被拒绝。我可以使用localhost:27017和使用dbsetup.js的L/P设置连接到robo3T的db容器,但是当express试图连接时,我得到了一个错误:

  • 这是我的: 和Dockerfile goparser: 连接MongoDB需要使用哪个地址?

  • 我有一个使用Mongo数据库的Node express服务器。 我正在尝试使用为它们中的每一个创建一个容器。 这是我的

  • 我想在一个容器中运行 RabbitMQ,在另一个容器中运行工作进程。工作进程需要访问 RabbitMQ。 我希望这些通过进行管理。 这是我的<代码>docker compose。迄今为止,yml文件: 所以我暴露了RabbitMQ端口。工作进程使用以下URL访问RabbitMQ: 这是他们在官方教程中使用的,但是已被替换为,因为容器应该可以使用与容器名称相同的主机名来发现: 默认情况下,“合成”会