docker 容器化部署 Flask 项目_MySQL+Gunicorn+Nginx

本文介绍了如何在Ubuntu环境中使用Docker部署Flask项目,包括创建测试项目、设置数据库、构建Flask和Nginx镜像,以及容器编排。使用了MySQL 5.7作为数据库,Flask 2.0.2作为Web框架,Gunicorn 20.1.0作为应用服务器,Nginx 1.21.4作为反向代理。部署过程中涉及网络配置,如创建容器网络,以及Gunicorn和Nginx的配置。测试成功后,可通过Nginx访问Flask应用。
摘要由CSDN通过智能技术生成

本文环境:

  • Linux 发行版:Ubuntu Focal 20.04.3 (LTS)
  • Linux 内核:Linux 5.4.0-90-generic
  • Docker 版本:20.10.11, build dea9396
  • MYSQL:5.7.36
  • Python:3.7.9
  • Flask:2.0.2
  • Gunicorn:20.1.0
  • Nginx:1.21.4

搭建 Linux 环境可参考:

部署前提

已启动数据库。本文数据库使用 mysql 5.7,数据库 IP 地址为 192.168.1.11 。

登录 mysql 创建测试数据库及用户:

-- 创建应用数据库
mysql> CREATE DATABASE demo;

-- 创建数据库用户
mysql> CREATE USER 'demouser'@'%' IDENTIFIED BY 'demo123';

-- 授权
mysql> GRANT ALL PRIVILEGES ON demo.* TO 'demouser'@'%';

创建测试项目

目录结构

└── flask_project
    ├── docker-compose.yml
    ├── flaskapp
    │   ├── app.py
    │   ├── config.py
    │   ├── Dockerfile
    │   ├── gunicorn.config.py
    │   └── requirements.txt
    ├── mysql
    │   └── test.env
    └── nginx
        ├── Dockerfile
        └── nginx.conf

./flaskapp/app.py

import os
from datetime import datetime

from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy

import config

# 实例化一个web应用
app = Flask(__name__)
app.config.from_object(config)
# 初始化一个数据库连接对象
db = SQLAlchemy(app)


# 测试数据库连接
# 建表
class User(db.Model):
    __tablename__ = 'user'
    uid = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)
    update_time = db.Column(db
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值