flask - Python Flask 未与 docker-compose 一起运行
问题描述
我有一个简单的 Flask 应用程序,由一个 Web 部件和一个数据库部件组成。代码可以在这里找到。在本地运行这个 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_DATABASE_URI = 'mysql://root:***@localhost:33060/flask_employees'
.
当我这样做时docker-compose up
,两个容器都已创建并正在运行,但是当我转到 http://localhost:50000 或http://127.0.0.1:50000时,我得到:
无法访问此站点,127.0.0.1 拒绝连接。
解决方案
您必须在“0.0.0.0”主机上运行烧瓶应用程序,以便能够从 docker 容器映射端口。
if __name__ == '__main__':
app.run(host='0.0.0.0', port='5000')
推荐阅读
- swift - 从 UIViewControllerRepresentable 更新视图控制器对象
- firebase - 如何在 react-native 和 supabase 中使用 Apple 和 Google 凭据登录
- node.js - 来自多个不相关 MongoDB 集合的单个 Node.js/Mongoose 流
- java - 使用 Mapstruct 将对象列表转换为长 ID 列表
- python - 舍入整数时,不要添加到末尾
- javascript - 我可以做些什么来帮助我的画布动画在 safari 中运行得更快,就像在 chrome 中一样?
- python - python创建25个单独的数组,范围为[0,0,0]到[1,0,0]
- javascript - 我被困在获取 HTML 按钮以开始 JS 脚本
- powershell - 使用 Powershell 获取 IIS 应用程序池 ProcessID
- sql - SQL:groupby忽略null并选择最新值时如何聚合列