当前位置: 代码网 > it编程>前端脚本>Python > 将Python项目打包成Docker镜像的全过程

将Python项目打包成Docker镜像的全过程

2025年08月04日 Python 我要评论
一、前言在日常开发中,我们经常需要部署 python 应用到服务器、测试环境或交付他人使用。传统方式依赖本地环境配置,一旦换机器或多人协作,很容易出现“本地运行没问题、远程报错一堆&rdq

一、前言

在日常开发中,我们经常需要部署 python 应用到服务器、测试环境或交付他人使用。传统方式依赖本地环境配置,一旦换机器或多人协作,很容易出现“本地运行没问题、远程报错一堆”的情况。为了解决这种“环境地狱”问题,docker 作为容器化技术的代表,能够打包整个项目及其依赖,保证“在哪跑都一样”。这篇文章将从零开始,记录我如何将一个 python 项目打包为 docker 镜像的全过程,适合有基本 python 基础但对 docker 不熟悉的开发者参考。

二、项目简介与结构

三、创建requirements.txt

pip freeze > requirements.txt

使用上面命令可能会打包很不需要的包,简洁一点打包方式

pip install pipreqs
pipreqs . --encoding=utf8 --use-local

四、编写 dockerfile 

# 使用官方 python 基础镜像
from python:3.10-slim

# 设置工作目录
workdir /app

# 复制依赖文件并安装
copy requirements.txt .
run pip install -r requirements.txt

# 安装依赖(官方源速度较慢,使用阿里源)
run pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 复制项目代码
copy . .

# 启动程序
cmd ["python", "app.py"]

当前我的项目的dockerfile是这样的

# 使用官方的 python 3.9 slim 镜像
from python:3.9-slim

# 设置工作目录
workdir /app

# 将当前目录的内容复制到容器中
copy asr_http_server.py /app/
copy trans_utils.py /app/
copy requirements.txt /app/

# 更新包管理器并安装必要的系统依赖
run apt-get update && apt-get install -y \
    ffmpeg \
    libsndfile1 \
    build-essential \
    curl \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 安装 python 依赖
run pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/


# 暴露 flask 服务的端口
expose 7869

# 设置启动命令
cmd ["python", "asr_http_server.py"]

五、构建 docker 镜像

docker build -t my-python-app .

构建过程截图

六、运行容器并访问服务

docker run -d -p 5000:5000 my-python-app

若 app.py 使用 flask,可在 127.0.0.1:5000 访问服务。

七、遇到的问题与解决

这里记录在构建过程中遇到的坑,比如:

  • pip 安装失败(网络问题 / 缺少 build 工具)
  • 镜像太大(优化建议:alpine / 多阶段构建)
  • 时区问题
  • 文件没复制进去 / 编码问题

八、总结

本文从零开始,介绍了如何将 python 项目打包成 docker 镜像,并记录了构建过程中的关键步骤与注意事项。希望能帮助你快速掌握 python 项目的容器化部署思路。

以上就是将python项目打包成docker镜像的全过程的详细内容,更多关于python项目打包docker镜像的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com