Flask Python烧瓶未与docker compose一起运行

Flask Python烧瓶未与docker compose一起运行,flask,docker-compose,Flask,Docker Compose,我有一个由web部件和数据库部件组成的简单Flask应用程序。代码可以找到。在本地运行此Flask应用程序效果非常好 我想让应用程序在Docker上运行。因此,我创建了以下docker compose文件 version: '3.6' services: web: build: . depends_on: - db networks: - default ports: - 50000:5000 volumes:

我有一个由web部件和数据库部件组成的简单Flask应用程序。代码可以找到。在本地运行此Flask应用程序效果非常好

我想让应用程序在Docker上运行。因此,我创建了以下docker compose文件

version: '3.6'

services:
  web:
    build: .
    depends_on:
      - db
    networks:
      - default
    ports:
      - 50000:5000
    volumes:
      - ./app:/usr/src/app/app
      - ./migrations:/usr/src/app/migrations
    restart: always

  db:
    environment:
      MYSQL_ROOT_PASSWORD: ***
      MYSQL_DATABASE: flask_employees
      MYSQL_USER: root
      MYSQL_PASSWORD: ***
    image: mariadb:latest
    networks:
      - default
    ports:
      - 33060:3306
    restart: always
    volumes:
       - db_data:/var/lib/mysql

volumes:
    db_data: {}
在Flask应用程序中,我正在设置以下
SQLALCHEMY\u数据库\u URI=mysql://root:***@本地主机:33060/flask_员工

当我执行
docker compose up
时,两个容器都已创建并正在运行,但当我转到http://localhost:50000 或者我得到:

无法访问此网站,127.0.0.1拒绝连接


您必须在“0.0.0.0”主机上运行flask应用程序,以便能够从docker容器映射端口

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='5000')

如何启动烧瓶应用程序;
app.run()
行是什么样子的?(另请参见。)从Flask应用程序的角度来看,
localhost
是Flask应用程序,而不是数据库,因此查看可用于容器间通信的主机名也可能对您有所帮助。谢谢。我使用的是'app.run(host='127.0.0.1',port='5000'),这确实导致了错误。这是否回答了您的问题?第一个选项不起作用。I get
services.web.ports包含无效类型,它应该是数字或对象
。但第二种方法很有效,并且很满意。如果您编辑答案,我可以接受。无效选项已删除