python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Docker部署Python Flask项目

使用Docker部署Python的Flask项目最新教程

作者:泥巴客

Flask是一个基于Python的Web框架,它的核心非常简单且易于扩展,这篇文章主要介绍了使用Docker部署Python的Flask项目的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、构建运行 Docker 容器

1. 查找合适镜像

打开 https://hub.docker.com/_/python/tags 找到合适自己的镜像,我找到的是 python:3.13.3-alpine3.22

根据环境选择镜像:

2.本地docker 拉取镜像

docker pull python:3.13.3-alpine3.22

 docker images

3.项目配置

1. python项目下生成 requirements.txt 依赖文件

pip freeze > requirements.txt

文件内容:

2. 生成Dockerfile文件

FROM python:3.12.10-alpine3.22

# 设置工作目录
WORKDIR /app

COPY . .

RUN adduser -D appuser

# 使用国内镜像源并增加超时时间
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 复制依赖文件并安装(添加超时和重试)
COPY requirements.txt .
RUN pip install --no-cache-dir \
    --timeout 100 \
    gunicorn>=21.2.0 \
    -r requirements.txt


# 验证安装(关键!)
RUN which gunicorn && gunicorn --version

USER appuser


# 启动命令
CMD ["gunicorn", "-b", "0.0.0.0:5000", "app:app", "--workers", "4", "--threads", "2"]

代码解释:

适用场景

这条命令适合 I/O 密集型的 Flask 应用,例如:

3.忽略不必要文件

创建 .dockerignore 文件排除不需要的文件:

__pycache__
*.pyc
*.pyo
*.pyd
.venv
Dockerfile
.git

4. 构建镜像

在项目根目录执行:

 docker build -t flask-api:prod.v1.1 .

4. 运行容器

docker rm -f flask-api && docker run -d -p 5000:5000  --name flask-api flask-api:prod

5.测试

curl http://localhost:5000

二、常见问题与解决方案

  1. 问题:容器启动后立即退出。
    原因:主进程(如 app.py)未保持运行(如脚本执行完就退出)。
    解决:确保应用持续监听端口(如 Flask/Django 服务)。

  2. 问题:依赖安装失败(如 Alpine 镜像缺少编译工具)。
    解决:在 Dockerfile 中添加编译依赖:

    RUN apk add --no-cache gcc musl-dev
    
  3. 问题:修改代码后需重新构建整个镜像。
    解决:利用 Docker 缓存,先复制 requirements.txt 并安装依赖,再复制代码。

总结 

到此这篇关于使用Docker部署Python的Flask项目的文章就介绍到这了,更多相关Docker部署Python Flask项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文