Docker构建python镜像

执行步骤如下:

1、使用Dockerfile创建有 接口自动化框架执行环境 的python镜像
2、根据python镜像,编写shell脚本 创建容器
3、拉取git(接口自动化框架)上的代码,使用python执行接口自动化框架
4、执行完成之后自动销毁容器

使用Dockfile创建python镜像

前置:需创建目录py38dockerfile(名称随意),并在此目录下放入  1、requirements.txt文件 2、Dockerfile文件  如下图:

1、创建requirements.txt文件,写入python要安装的依赖包 如下

allpairspy==2.5.0
allure-pytest==2.9.45
allure-python-commons==2.9.45
altgraph==0.17.3
anyio==3.3.4
appdirs==1.4.4
Appium-Python-Client==2.1.2
asgiref==3.4.1
async-generator==1.10
atomicwrites==1.4.0
attrs==21.2.0
auto-testing==0.0.2.1
bcrypt==3.2.0
black==19.10b0
Brotli==1.0.9
cachetools==5.0.0
certifi==2020.12.5
cffi==1.15.0
chardet==4.0.0
click==8.0.1
colorama==0.4.4
colorlog==6.7.0
contourpy==1.1.1
cryptography==35.0.0
cssselect==1.1.0
cssutils==2.4.0
cycler==0.12.1
ddt==1.4.4
Django==2.2.13
docopt==0.6.2
Dumper==1.2.0
et-xmlfile==1.1.0
exceptiongroup==1.1.2
execnet==2.0.2
Faker==9.5.2
fastapi==0.70.0
Flask==2.0.1
fonttools==4.43.1
gevent==23.9.1
greenlet==2.0.2
h11==0.12.0
har2case==0.3.1
httprunner==3.1.6
hypothesis==6.87.3
idna==2.10
importlib-resources==6.1.0
iniconfig==1.1.1
itsdangerous==2.0.1
Jinja2==2.11.3
jmespath==0.9.5
jsonpath==0.82
kiwisolver==1.4.5
loguru==0.4.1
lxml==4.8.0
MarkupSafe==2.0.1
more-itertools==8.12.0
multi-key-dict==2.0.3
mysql-connector==2.2.9
mysql-replication==0.43.0
numpy==1.24.4
opencv-python==4.8.0.76
openpyxl==3.1.2
packaging==24.0
paho-mqtt==1.6.1
pandas==2.0.3
paramiko==2.8.0
pathspec==0.9.0
pbr==5.11.1
pefile==2023.2.7
pika==1.3.2
Pillow==10.0.1
pluggy==0.13.1
premailer==3.10.0
psutil==5.9.5
py==1.10.0
pyasn1==0.5.0
pycparser==2.20
pycryptodome==3.18.0
pydantic==1.8.2
pyinstaller==5.7.0
pyinstaller-hooks-contrib==2022.15
PyJWT==2.7.0
PyMySQL==1.1.0
PyNaCl==1.4.0
pyOpenSSL==21.0.0
pytest==7.4.0
pytest-html==2.1.1
pytest-instafail==0.5.0
pytest-metadata==1.11.0
pytest-rerunfailures==12.0
pytest-sugar==1.0.0
pytest-testreport==1.1.6
pytest-timeout==2.1.0
pytest-xdist==3.5.0
python-dateutil==2.8.2
python-docx==1.1.0
python-dotenv==1.0.0
python-jenkins==1.8.0
pytz==2021.3
pywebio==1.8.2
pywin32-ctypes==0.2.0
PyYAML==5.4.1
QScintilla==2.14.1
qt5-applications==5.15.2.2.3
qt5-tools==5.15.2.1.3
regex==2021.11.10
requests==2.25.1
retrying==1.3.3
rsa==4.9
ruamel.yaml==0.18.5
ruamel.yaml.clib==0.2.8
selenium==4.1.0
sentry-sdk==0.14.4
six==1.16.0
sniffio==1.2.0
sortedcontainers==2.4.0
SQLAlchemy==2.0.20
sqlparse==0.4.2
starlette==0.16.0
termcolor==2.4.0
text-unidecode==1.3
toml==0.10.2
tomli==2.0.1
tornado==6.3.1
trio==0.19.0
urllib3==1.26.4
xlrd==1.2.0
zipp==3.17.0
View Code

 

2、创建Dockerfile文件

在py38dockerfile同目录下创建Dockfile文件(注:Dockerfile 文件名称首字母大写,名称固定),内容如下:

FROM python:3.8.3 # 基于的基础镜像,镜像文件来源。本地没有则自动拉取DockerHub上面的
WORKDIR /opt/zcj   #切换工作空间目录
ADD ./requirements.txt #将python项目依赖包文件添加到镜像
COPY requirements.txt requirements.txt#镜像中需要添加的文件\依赖
RUN pip3 install -r ./requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir --no-dependencies #安装依赖包
CMD ["python3", "run.py"] #设置容器执行后自动执行的命令,这里run.py是我们自动化框架的执行入口文件,docker run创建容器之后,若传了执行命令,会把cmd的命令覆盖

3、制作镜像

docker build -t ImageName:TagName dir
ImageName - 镜像名称 python3.8
agName - 镜像的标签  v1
dir - Dockerfile所在的目录,当前名录为 “.” 
docker build -t python3.8:v1 .

4、编写build.sh脚本, 运行python镜像,生成容器

echo "运行容器python执行自动化" #输出日志
docker run --rm -w=$WORKSPACE --volumes-from=jenkins3 python3.8:v1
echo "python执行自动化执行成功"

#-w=$WORKSPACE:指定workspace

#--volumes-from=jenkins_save01:将jenkins3容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去

# jenkins3 为 jenkins容器名称---->>点击 Jenkins容器搭建  传送门 

end:到此处..... python镜像算是构建完成了

 

posted @ 2024-05-16 16:53  攻城狮-tester  阅读(267)  评论(0编辑  收藏  举报