暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

docker+jenkins+python构建

泽。 2024-10-22
158
一、准备工作
安装Docker:基于windows,基于windows,基于windows

1、在你的Jenkins服务器上安装Docker。这可以通过操作系统的包管理器(如apt-get、yum等)或Docker的官方网站提供的安装脚本来完成。

2、安装Jenkins:
同样,在你的服务器上安装Jenkins。这可以通过下载Jenkins的war包并运行,或者通过Docker容器来部署Jenkins。

二、拉取并运行Jenkins Docker容器

1、拉取Jenkins镜像:
使用Docker命令拉取Jenkins的官方镜像。例如:docker pull jenkins/jenkins:lts(lts表示长期支持版)。
##推荐直接在docker图形界面上直接搜索拉取
image.png

2、配置本地挂载目录:
创建一个本地目录,用于存储Jenkins的数据和配置。例如:mkdir -p /var/jenkins_home(这步有问题就跳过)

3、运行Jenkins容器:
使用Docker命令运行Jenkins容器,并将本地目录挂载到容器的/var/jenkins_home目录。例如:
bash命令
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
这里,-d表示后台运行容器,–name jenkins为容器指定名称,-p参数用于映射容器的端口到宿主机的端口。
##这步建议直接在docker图形页面上设置,设置name、50000、8080,比敲这一大串快

三、配置Jenkins

1、访问Jenkins Web界面:
在浏览器中访问http://<你的Jenkins服务器IP>:8080,进入Jenkins的Web界面。

2、获取初始管理员密码:
在Jenkins首次启动时,会生成一个初始管理员密码。你可以通过运行docker logs jenkins命令来查找这个密码。
##docker运行容器后,logs图形界面中有显示密码
image.png

3、安装插件:
进入Jenkins后,按照提示安装推荐的插件或根据需要安装其他插件。
Gitee
publish-over-ssh

四、在Jenkins容器中配置Python环境

1、进入Jenkins容器:
使用Docker命令进入Jenkins容器内部。例如:docker exec -it --user root <jenkins_container_id_or_name> /bin/bash

2、更新软件包列表并安装Python:
在容器内部,更新软件包列表并安装Python。例如(以Debian/Ubuntu为例):
bash命令
apt-get update
apt-get install -y python3 python3-pip
apt-get install python3-pytest
apt-get install python3-xyz
apt-get install sudo

3、验证Python安装:
安装完成后,验证Python和pip的版本。例如:
bash命令
python3 --version
pip3 --version

五、配置Jenkins构建任务以使用Python环境

1、创建新项目:
在Jenkins的Web界面中,创建一个新的构建项目。

2、配置构建步骤:
在项目的配置页面中,添加构建步骤。例如,选择“Execute shell”并在命令框中输入你的Python脚本执行命令。

#!/bin/bash  
  
# 设置工作目录(可选,如果你的Jenkins工作空间已经设置正确,可以省略)  
WORKDIR="./"  
cd "$WORKDIR" || { echo "Failed to change to work directory $WORKDIR"; exit 1; }  

# 设置项目根目录和基础解释器位置  
export PYTHONPATH=$WORKSPACE  
export PYTHON_BASIC_BINARY=/usr/bin/python3  
  
# 设置虚拟环境目录  
export PYTHON_VENVS=$PYTHONPATH/venv  
  
# 检查和创建虚拟环境  
mkdir -p $PYTHON_VENVS  
VENV=$PYTHON_VENVS/venv_$JOB_BASE_NAME  
if [ ! -f "$VENV/pyvenv.cfg" ]; then  
    $PYTHON_BASIC_BINARY -m venv $VENV  
    $VENV/bin/python -m pip install --upgrade pip >/dev/null 2>&1  
fi  
  
# 激活虚拟环境  
. $VENV/bin/activate  
  
# 安装依赖  
pip install -r requirements.txt -q  
  
# 运行脚本  
#python main.py

#切换到root用户
#docker exec -it --user root jenkins /bin/bash
#sudo su

# 安装依赖  
#echo "Installing dependencies..."  
#apt-get install requirements.txt -q
#if [ $? -ne 0 ]; then  
#    echo "Failed to install dependencies."  
#    exit 1  
#fi  
  
# 获取当前北京时间(假设服务器时区已设置为北京时间)  
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")  
echo "Current Beijing Time: $CURRENT_TIME"  
  
# 运行pytest测试  
echo "Running pytest tests..."  
pytest main.py  
TEST_RESULT=$?  
  
# 输出测试结果和时间  
if [ $TEST_RESULT -eq 0 ]; then  
    echo "All tests passed at $CURRENT_TIME"  
else  
    echo "Some tests failed at $CURRENT_TIME"  
fi  
  
# 根据测试结果设置Jenkins构建状态  
if [ $TEST_RESULT -ne 0 ]; then  
    exit 1  # 非零退出状态表示构建失败  
else  
    exit 0  # 零退出状态表示构建成功  
fi

#添加chromedriver PATH
export PATH=$PATH:/path/to/chromedriver

3、保存并构建:
保存项目配置,并触发构建任务。

4、下载chrome浏览器与驱动
更新包列表:apt-get update
使用docker exec命令以root用户身份进入Jenkins容器:docker exec -it -u root <container_id> /bin/bash
容器中创建一个目录来存放Chrome安装包:mkdir -p /chrome
切换到创建的目录:cd /chrome
下载Chrome安装包并安装:
apt-get update
apt-get install -y wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
dpkg -i google-chrome-stable_current_amd64.deb
apt-get -f install -y
查看是否安装成功:google-chrome --version
安装chromedriver:wget https://storage.googleapis.com/chrome-for-testing-public/130.0.6723.69/linux64/chromedriver-linux64.zip
#到https://googlechromelabs.github.io/chrome-for-testing/#stable上获取chrome对应的版本chromedriver链接
安装解压包:apt -j install unzip
解压chromedriver-linux64.zip:unzip -j chromedriver-linux64.zip
查看chromedriver版本:chromedriver --version
显示当前路径:pwd
配置环境变量:export PATH=$PATH:/chrome
启动D-Bus 服务:service dbus restart
安装x服务器:apt-get xorg
配置DISPLAY当前的值:export DISPLAY=:0

最后修改时间:2024-10-23 13:24:09
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论