1. Windows环境
1.1 运行环境准备
- 安装Java运行环境,版本:
Java 1.8或Java11

1.2 下载Jenkins
官网下载链接:https://www.jenkins.io/download
推荐下载LTS版本。
1.3 安装Jenkins
跟随安装提示,安装Jenkins即可。

1.4 疑难杂症:在安装过程中如何需要选择Logon Type?
- 选择
以本地用户或域用户来运行服务。

- 用cmd运行
secpol.msc打开本地安全策略

- 添加用户

- 回到安装界面填入本地账户即可

2. Linux环境:Docker容器化技术
2.1 运行环境准备
2.1.1 更新系统环境
- 切换系统的安装源

-
终端内更新系统软件
Terminal window sudo apt updatesudo apt upgrade
2.1.2 安装Docker
# 安装curlsudo apt-get install curl# 获取Docker的GPGcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 下载Docker并安装curl -fsSL http://get.docker.com | bash -s docker --mirror Aliyun2.1.3 备用操作
systemctl start docker # 启动dockerdocker -v # 检查docker版本systemctl stop docker # 停止docker
sudo docker images # 查看全部镜像sudo docker ps -a # 查看全部容器
sudo docker rmi 镜像ID号或镜像名称 # 删除镜像sudo docker rm 容器ID号或容器名称 # 删除容器2.2 Docker环境内加载NVIDIA显卡驱动
在Docker 19版本之后,安装 nvidia-container-runtime 的运行包即可调用英伟达显卡驱动,使用的时候用 —gpus参数 来控制显卡驱动的功能。
2.2.1 安装nvidia-container-runtime
- 添加Nvidia的apt存储库
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \sudo apt-key add -distribution=$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list- 更新apt存储库
sudo apt-get update- 在docker环境外,安装nvidia-container-runtime
sudo apt-get install nvidia-container-runtime- 重启docker服务
sudo systemctl restart docker2.2.2 功能验证
-
新建空文件夹,在文件夹内创建dockerfile文件,内容如下
FROM ubuntu:22.04 -
在文件夹内打开终端,构建docker镜像,镜像名称可自定义,如:
nvidia_docker_testTerminal window sudo docker build -t nvidia_docker_test:1.0 . -
创建容器
-
方案一
Terminal window sudo docker run -it --name Nvidia --gpus '"device=all","capabilities=compute,utility"' nvidia_docker_test:1.0 /bin/bash -
方案二
Terminal window sudo docker run -it --name Nvidia --gpus all -e NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=compute,utility nvidia_docker_test:1.0 /bin/bash
-
-
进入新的容器,运行
nvidia-smi确认显卡驱动运行状态。

2.3 用Dockerfile方式制作Jenkins镜像
- 手动编写dockerfile,放入JenkinsEnv文件夹中
FROM jenkins/jenkins:lts
USER root
# Update apt sourceRUN touch /etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" >> /etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" >> /etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib" >> /etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib" >> /etc/apt/sources.listRUN apt-get update
# Install wget vimRUN apt-get install -y wget vim
# Install miniconda3RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.9.0-0-Linux-x86_64.shRUN bash Miniconda3-py310_23.9.0-0-Linux-x86_64.sh -p /opt/miniconda3 -bRUN rm Miniconda3-py310_23.9.0-0-Linux-x86_64.sh
# Configure minicondaENV PATH=/opt/miniconda3/bin:${PATH}RUN conda init
# Update miniconda conda sourceRUN touch ~/.condarcRUN echo "show_channel_urls: true" >> ~/.condarcRUN echo "default_channels:" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/" >> ~/.condarcRUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/" >> ~/.condarcRUN conda clean -i -y
# Update miniconda pip sourceRUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple-
打开终端,切换到JenkinsEnv文件夹中
-
执行命令,生成Jenkins镜像——镜像名称和TAG可自行定义。此处镜像名为jenkins_tool,TAG为1.0
Terminal window sudo docker build -t jenkins_tool:1.0 . -
镜像中包含
- 基本工具:wget、vim、miniconda3
- 国内镜像源:apt源、conda源、pip源
2.4 创建Jenkins容器
2.4.1 设置Jenkins的工作路径
# 以/media/seagate/jenkins_home为例sudo mkdir -p /media/seagate/jenkins_homesudo chmod 777 /media/seagate/jenkins_home2.4.2 运行Jenkins容器
# 运行Jenkinssudo docker run -dit \ --name jenkins_env \ --net=host \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /media/seagate/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime \ --gpus '"device=all","capabilities=compute,utility"' \ jenkins_kbqa:1.0-
参数说明
-
-d:后台运行容器 -
-i:以交互模式运行容器 -
-t:为容器重新分配一个伪输入终端 -
--name:容器名称 -
--net=host:默认容器的net方式为bridge方式,此处需要改为host方式,使用这种方式容器可以直接使用宿主机的IP和端口,而不会自行虚拟IP和端口 -
-v /var/run/docker.sock:/var/run/docker.sock和-v /usr/bin/docker:/usr/bin/docker:以Docker outside of Docker的方式启动容器,使用这种方式可以在容器中进行docker命令 -
--gpus '"device=all","capabilities=compute,utility"':借助nvidia-container-runtime工具,使容器内可以调度GPU资源
-
2.4.3 备用操作
sudo docker start jenkins_env # 启动Jenkins容器sudo docker exec -it jenkins_env /bin/bash # 进入Jenkins容器的工作目录sudo docker stop jenkins_env # 停止Jenkins容器2.5 启动Jenkins
在浏览器中输入 IP127.0.0.1,端口默认为8080端口,浏览器弹出下述界面,表示Jenkins安装完成并成功启动了。
