17_Flask部署到网络服务器
一、生产部署
应用开发完成以后,需要把它提供给用户使用。重点介绍:在 Docker 中部署 Flask 应用。要使用 Docker 和 docker-compose 来部署一个简单的 Flask 应用,您需要创建两个文件:一个是 Dockerfile,用于定义如何构建应用的 Docker 镜像;另一个是 docker-compose.yml 文件,用于定义服务以及它们之间的连接方式。
二、初始代码
Ctrl + C 拷贝 01-hello-world,粘贴到 flask-study 目录,然后命名为 14-docker-deploy
三、安装 Gunicorn
安装依赖
pip install gunicorn
四、列出依赖
自动生成 requirements.txt 文件,推荐使用工具 pipreqs。这个工具会扫描你的项目代码中实际导入的模块,并生成一个精简、准确的依赖列表文件。
4.1 安装 pipreqs
pip install pipreqs
4.2 执行 pipreqs 命令
# 进入项目根目录
cd 14-docker-deploy
# 运行 pipreqs 命令
# . 表示当前目录。
# --encoding=utf8:防止编码错误(尤其是中文路径或文件名)。
# --force:如果已存在 requirements.txt,强制覆盖生成。
pipreqs . --encoding=utf8 --force
使用以下命令将当前环境中安装的 gunicorn 版本信息写入 requirements.txt 文件:
pip freeze | findstr /i "gunicorn" >> requirements.txt
五、创建 Dockerfile
在 app.py 同一目录下创建一个名为 Dockerfile 的文件,内容如下:
# 使用官方的 Python 基础镜像
FROM docker.1ms.run/python:3.10-slim
# 设置工作目录
WORKDIR /app
# 复制 requirements.txt 文件并安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 复制当前目录下的所有文件到工作目录
COPY . .
# 暴露容器的端口
EXPOSE 5000
# 运行 Flask 应用
CMD ["gunicorn", "-b", "0.0.0.0:5000", "app:app"]
六、创建 docker-compose.yml
在 app.py 同一目录下创建一个名为 docker-compose.yml 的文件,内容如下:
version: '3.10'
services:
flask_app:
build: .
container_name: flask_app
restart: always
ports:
- "5000:5000"
volumes:
- .:/app
environment:
FLASK_ENV: production
七、安装Docker服务
Windows 11 家庭中文版安装Docker Desktop图文教程
八、构建和运行
然后运行以下命令以构建并启动服务:
docker-compose up --build
九、查看docker上构建的服务
点击访问服务:
访问效果: