Python项目打包为Docker镜像并保存修改的完整流程

洛溪
洛溪
发布时间:2026-10-12| 3人浏览过
原创

本文详细介绍如何将修改后的Python项目打包为.tar.gz格式,并通过Dockerfile构建镜像。内容涵盖setup.py配置、项目打包命令、镜像构建与运行,以及如何在容器内保存和提取代码修改,确保开发成果不丢失。

若需将修改后的Python代码导出为 .tar.gz 格式,并通过 import 语句导入,同时保证修改内容能保存至新镜像以支持后续开发,可参考以下操作流程。

前提条件

  1. 环境中已安装 Docker。
  2. 拥有一个已进行代码修改的 Python 项目。
  3. 掌握基本的命令行操作技能。

步骤 1: 创建并准备 Python 项目

假设项目目录结构如下所示:

my_project/
│
├── src/
│   ├── __init__.py
│   └── my_module.py
├── setup.py
├── requirements.txt
└── README.md

步骤 2: 创建setup.py

setup.py 是用于打包 Python 项目的标准配置文件。

以下是一个简单的 setup.py 配置示例:

from setuptools import setup, find_packages

setup(
    name='my_project',
    version='0.1',
    packages=find_packages(),
    install_requires=[
        # 从 requirements.txt 中读取依赖项
        line.strip() for line in open('requirements.txt')
    ],
)

步骤 3: 打包项目

在项目根目录下,执行以下命令将项目打包为 .tar.gz 格式:

python setup.py sdist bdist_wheel

该操作会在 dist/ 目录下生成一个 .tar.gz 文件,

具体包括 my_project-0.1-py3-none-any.whl 和 my_project-0.1.tar.gz 等文件。

步骤 4: 创建 Dockerfile

在项目根目录下新建一个 Dockerfile,用于定义包含该项目的 Docker 镜像构建规则。

以下是一个示例 Dockerfile 内容:

# 使用官方的 Python 基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 将当前目录的内容复制到工作目录中
COPY . /app

# 安装项目的依赖项
RUN pip install --no-cache-dir -r requirements.txt

# 安装打包好的项目
COPY dist/my_project-0.1.tar.gz /app/
RUN pip install /app/my_project-0.1.tar.gz

# 运行一个 Python shell 或者其他命令
CMD ["python", "-m", "my_project.src.my_module"]

步骤 5: 构建 Docker 镜像

在项目根目录下执行以下命令以构建 Docker 镜像:

docker build -t my_project_image .

步骤 6: 运行 Docker 容器

执行以下命令启动容器:

docker run -it --rm my_project_image

进入容器后,可通过 import 语句导入模块,例如:

import my_project.src.my_module

my_project.src.my_module.some_function()

步骤 7: 保存修改并继续开发

若在容器内进行了额外修改并希望保存,需将修改后的代码从容器拷贝至主机,随后重新打包并构建镜像。

例如,可使用 docker cp 命令将修改后的代码从容器复制到主机:

docker cp <container_id>:/app/src ./src

之后再次执行步骤 3 至步骤 6 即可。

总结

通过上述步骤,可将修改后的 Python 代码打包为 .tar.gz 格式,并利用 Docker 保存至新镜像中。

此举允许在任何环境中使用该镜像继续开发,无需担忧丢失已做的代码修改。

以上为个人经验总结,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。