Docker+Jenkins实现Python 接口自动化部署

简单说一下docker,docker 是一种开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到Linux服务器上。

在使用docker之前,可能需要花一周左右的实时间先简单学一下docker知识。

我们需要学习docker客户端工具、docker命令的基本使用、Dockerfile的编写和Jenkins构建命令的配置。

下面,我将基于我在项目测试中的实践作一下介绍。

安装Docker Desktop客户端工具

docker官网:https://www.docker.com/

image

Windows系统安装docker,可能需要先行安装WSL(Windows Subsystem for Linux),Docker Desktop 推荐使用 WSL 2 作为后端运行环境,因为 WSL 2 提供了更高效的 Linux 内核支持,是否需要安装需要结合自己电脑系统情况。

比如我的电脑系统是Windows 11 家庭中文版,就需要先安装WSL。

 如需安装,可在电脑命令行中执行以下命令:

#安装WSL
wsl --install

#查看当前版本
wsl --version

image

 

#列出当前已安装的所有 WSL 发行版及其详细信息
wsl -l -v

#将新安装的 WSL 发行版的默认版本设置为 WSL 2
wsl --set-default-version 2

验证docker是否安装成功

image

 如果出现docker的版本信息,说明docker安装成功

自定义Python项目镜像

由于我使用的是Python 3.10.5,因此我需要基于Python 3.10.5来自定义我的项目镜像。

1、首先启动docker客户端工具,然后打开电脑命令行,执行以下命令:

docker pull python:3.10.5

命令执行成功之后,可以登录客户端工具或者在电脑命令行中使用命令查看镜像文件。

客户端工具查看

 

image

 命令行查看:执行docker images命令

image

 2、基于Python3.10.5基础镜像,结合当前项目的依赖,构建自定义镜像文件my-pyhton-base。

2.1 列出当前项目所需的所有依赖包及其版本

pycharm终端执行命令:

pip freeze > requirements.txt

image

会在当前项目目录下生成以下文件

image

2.2创建Dockerfile文件,使用docker build命令构建镜像。

 

image

在电脑端进入Dockerfile文件所在目录中

image

 

打开命令行工具,执行以下命令:

docker build -t my-python-base:3.10.5 .

构建镜像成功之后,会在当前目录下生成my-python-base.tar文件,同样可以在docker客户端工具或电脑命令行中查看,可以看到my-pyhton-base镜像文件已经生成。

 

image

 

导出该镜像文件为tar压缩文件,上传至服务器

3.1导出自定义镜像文件

docker save -o my-python-base.tar(可自定义)my-python-base:3.10.5(本地镜像名)

3.2将归档文件加载到测试服务器的docker镜像库中

  • 在测试服务器执行命令:

    docker load -i my-python-base.tar

加载成功后,执行docker images|grep ‘my-python-base’命令,查看

image

 

3.3基于自定义Python镜像创建Dockerfile文件

在当前项目下重新创建Dockerfile文件,这次的Dockerfile文件是基于2.2中基于我自定义的镜像文件。

 

可以看到下方截图中第一行代码:FROM my-python-base:3.10.5

image

在jenkins中配置构建任务

4.1 配置构建任务

image

注意

① xqls_autotest是自定义的名称,需要与步骤2.2中创建的Dockerfile文件中的工作目录名称保持一致。

 

② 在jenkins每次构建时,需要先停止并删除正在运行的容器,并删除原有的镜像文件并重新构建,最后启动容器。

 

③ 由于在2.2步骤中已经将所需的项目依赖包都安装并打包在镜像文件中了,所以每次构建时,不需要重新下载了,这样保证每次构建时的环境是一样的,且速度很快。

image

 4.2执行构建

可以看到构建过程中,按照设置的命令启动了容器。

image

按照Dockerfile文件中的指令,会基于我自定义的Python镜像文件。

 

首先将测试服务器(宿主机)中的Python代码拷贝到xqls_autotest容器中,

然后以xqls_autotest:latest镜像为模板启动容器执行项目代码。

image

 检查构建结果

可以在下图中看到最终项目代码是执行成功了。

image

 由于在jenkins中配置了定时构建,所以每天固定时间jenkins都会从代码仓库中拉取代码自动构建,并生成测试报告。

image

通过这段时间使用docker结合Jenkins进行测试代码自动化部署,确实感觉方便了不少,主要有以下几大优点:

①实现代码容器化,形成环境隔离。保证了本地环境、测试环境代码及其环境依赖的一致性,提高了代码部署的稳定性和可维护性。

②便于快速部署和启动。docker容器由于轻量,启动非常迅速。

③实现自动化持续集成:通过设置构建任务触,可以实现自动化执行代码拉取、构建、测试、测试报告生成,方便动态监控测试结果,提升交付效率。

本篇文章主要是介绍我在项目测试中应用docker、jenkins的场景和方式,对于还没接触过或者不了解docker、jenkins的同学,可能还需要自己细致学习一下相关的知识,掌握相关知识后能帮助大家更好地应用和拓展。

 

posted @ 2025-08-05 19:08  溺水的小金鱼  阅读(60)  评论(0)    收藏  举报