1186 字
6 分钟
Jenkins:安装
2024-04-22

1. Windows环境#

1.1 运行环境准备#

  • 安装Java运行环境,版本:Java 1.8Java11

提前安装JDK

1.2 下载Jenkins#

​ 官网下载链接:https://www.jenkins.io/download

​ 推荐下载LTS版本。

1.3 安装Jenkins#

​ 跟随安装提示,安装Jenkins即可。

安装Jenkins

1.4 疑难杂症:在安装过程中如何需要选择Logon Type?#

  • 选择以本地用户或域用户来运行服务

以本地用户或域用户来运行服务

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

本地安全策略

  • 添加用户

添加用户

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

填入用户信息

2. Linux环境:Docker容器化技术#

2.1 运行环境准备#

2.1.1 更新系统环境#

  • 切换系统的安装源

切换系统安装源

  • 终端内更新系统软件

    Terminal window
    sudo apt update
    sudo apt upgrade

2.1.2 安装Docker#

Terminal window
# 安装curl
sudo apt-get install curl
# 获取Docker的GPG
curl -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 Aliyun

2.1.3 备用操作#

Terminal window
systemctl start docker # 启动docker
docker -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存储库
Terminal window
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存储库
Terminal window
sudo apt-get update
  • 在docker环境外,安装nvidia-container-runtime
Terminal window
sudo apt-get install nvidia-container-runtime
  • 重启docker服务
Terminal window
sudo systemctl restart docker

2.2.2 功能验证#

  • 新建空文件夹,在文件夹内创建dockerfile文件,内容如下

    FROM ubuntu:22.04
  • 在文件夹内打开终端,构建docker镜像,镜像名称可自定义,如:nvidia_docker_test

    Terminal 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确认显卡驱动运行状态。

nvidia-smi

2.3 用Dockerfile方式制作Jenkins镜像#

  • 手动编写dockerfile,放入JenkinsEnv文件夹中
FROM jenkins/jenkins:lts
USER root
# Update apt source
RUN touch /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib" >> /etc/apt/sources.list
RUN apt-get update
# Install wget vim
RUN apt-get install -y wget vim
# Install miniconda3
RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.9.0-0-Linux-x86_64.sh
RUN bash Miniconda3-py310_23.9.0-0-Linux-x86_64.sh -p /opt/miniconda3 -b
RUN rm Miniconda3-py310_23.9.0-0-Linux-x86_64.sh
# Configure miniconda
ENV PATH=/opt/miniconda3/bin:${PATH}
RUN conda init
# Update miniconda conda source
RUN touch ~/.condarc
RUN echo "show_channel_urls: true" >> ~/.condarc
RUN echo "default_channels:" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/" >> ~/.condarc
RUN echo " - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/" >> ~/.condarc
RUN conda clean -i -y
# Update miniconda pip source
RUN 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 .
  • 镜像中包含

    • 基本工具:wgetvimminiconda3
    • 国内镜像源:apt源conda源pip源

2.4 创建Jenkins容器#

2.4.1 设置Jenkins的工作路径#

Terminal window
# 以/media/seagate/jenkins_home为例
sudo mkdir -p /media/seagate/jenkins_home
sudo chmod 777 /media/seagate/jenkins_home

2.4.2 运行Jenkins容器#

Terminal window
# 运行Jenkins
sudo 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 备用操作#

Terminal window
sudo docker start jenkins_env # 启动Jenkins容器
sudo docker exec -it jenkins_env /bin/bash # 进入Jenkins容器的工作目录
sudo docker stop jenkins_env # 停止Jenkins容器

2.5 启动Jenkins#

​ 在浏览器中输入 IP,一般IP默认为 127.0.0.1,端口默认为8080端口,浏览器弹出下述界面,表示Jenkins安装完成并成功启动了

Jenkins初始化配置界面

封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00