Flask Python烧瓶未与docker compose一起运行
我有一个由web部件和数据库部件组成的简单Flask应用程序。代码可以找到。在本地运行此Flask应用程序效果非常好 我想让应用程序在Docker上运行。因此,我创建了以下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:
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 getservices.web.ports包含无效类型,它应该是数字或对象
。但第二种方法很有效,并且很满意。如果您编辑答案,我可以接受。无效选项已删除