jenkins的安装与使用
6.3.3 安装jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
sudo yum upgrade
# Add required dependencies for the jenkins package
# 手动下载:https://download.oracle.com/java/21/latest/jdk-21_linux-aarch64_bin.rpm
yum install jdk-21_linux-aarch64_bin.rpm
sudo yum install fontconfig
sudo yum install jenkins
# 如果gpgcheck不通过
sudo yum install --nogpgcheck fontconfig java-21-openjdk
# sudo yum install jenkins 安装失败,手动下载rpm安装
# http://pkg.jenkins.io/redhat-stable/jenkins-2.516.3-1.1.noarch.rpm
yum install jenkins-2.516.3-1.1.noarch.rpm
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
# 设置防火墙
YOURPORT=8080
PERM="--permanent"
SERV="$PERM --service=jenkins"
firewall-cmd $PERM --new-service=jenkins
firewall-cmd $SERV --set-short="Jenkins ports"
firewall-cmd $SERV --set-description="Jenkins port exceptions"
firewall-cmd $SERV --add-port=$YOURPORT/tcp
firewall-cmd $PERM --add-service=jenkins
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
- cat /var/lib/jenkins/secrets/initialAdminPassword
- yum --nogpgcheck install git
ip地址:8080 root/fubo123456
6.3.3 docker安装jenkins
-
docker pull jenkins/jenkins:lts-jdk17 dcoker pull jenkins/jenkins:2.319.1-lts -
编写docker-compose.yml
mkdir -p /usr/local/docker/jenkins_home cd /usr/local/docker/jenkins_home vim docker-compose.ymlversion: "3.1" services: jenkins: image: jenkins/jenkins:2.319.1-lts container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - ./data/:/var/jenkins_home/ -
启动容器
mkdir data chmod 777 data/ docker compose up -d docker ps

-
查询密码
docker logs -f 容器id

密码:f93c7c0c2d7d4504a65f1e886589b67a
- 登陆页面,下载插件


docker内部执行不了docker命令
-
第一种方式
-
先通过dockerfile,构建一次镜像
-
在通过docker compos jenkins-docker构建镜像
-
缺点,就是每次启动容器后,都要进入修改docker.sock的权限
-
- 如果出现没有执行docker.dcok的权限 docker exec -it -u root jenkins bash chmod 777 /var/run/docker.scok
-
FROM jenkins/jenkins:2.528.1-lts-jdk21
USER root
RUN apt-get update && \
apt-get install -y docker.io && \
chmod 666 /var/run/docker.sock && \
usermod -aG docker jenkins
USER jenkins
# 构建jenkins带docker的镜像
docker build -t jenkins-docker .
version: "3.1"
services:
jenkins:
image: jenkins-docker:latest
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
- /Users/mac/.docker/run/docker.sock:/var/run/docker.sock
- /Users/mac/.docker/daemon.json:/etc/docker/daemon.json
# environment:
# - DOCKER_HOST=unix:///var/run/docker.sock # 确保 Jenkins 使用正确的 Docker 路径
- 第二种方式
- 直接通过docker-compose.yml构建
- Docker-compose up -d
version: "3.1"
services:
jenkins:
image: jenkins/jenkins:2.528.1-lts-jdk21
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
- /Users/mac/.docker/run/docker.sock:/var/run/docker.sock
- /Users/mac/.docker/daemon.json:/etc/docker/daemon.json
user: "root"
command: >
sh -c "apt update && apt upgrade -y docker.io &&
chmod 777 /var/run/docker.sock &&
/usr/local/bin/jenkins.sh"
- 第三种方式:手动执行
docker-compose up -d
docker exec -it -u root jenkins bash
# 在容器内执行(以 root 用户)
apt-get update
apt-get install -y docker.io
# 验证
docker version
6.3.4 Jenkins安装插件
-
问题:服务时间跟https://updates.jenkins.io/update-center.json不同步,ssl不通过
sudo chronyc makestep -
修改下载源
vim /usr/local/docker/jenkins_home_lts-jdk17/data/updates/default.json # docker部署的 vim //var/lib/jenkins/updates/updates/default.json # 裸机上部署的 :%s/updates.jenkins.io\/download/mirrors.huaweicloud.com\/jenkins/g :%s/mirrors.huaweicloud.com\/jenkins/repo.huaweicloud.com\/jenkins/g -
更改更新源
http://mirror.esuni.jp/jenkins/updates/update-center.json https://repo.huaweicloud.com/jenkins/updates/update-center.json https://mirrors.huaweicloud.com/jenkins/updates/update-center.json -
手动下载
https://updates.jenkins.io/download/plugins/ 下载到./data/plugins下面 然后重启docker才能加载成功 -
需要的插件
# 需要的插件 Git Parameter Publish Over SSH pipline view
6.3.5 配置jenkins
- 将依赖的环境比如jdk,conda,maven文件夹,复制到/usr/local/docker/jenkins_home_lts-jdk17/data/目录下
- 通过publish over ssh配置远程连接的服务器(目标服务器需要安装docker,最好是同样版本的)

6.3.6 配置cicd自由风格工作流
-
创建item,配置git
![image-20251015181611579]()
-
config 配置git

- 容器内查看拉区的代码

-
Mac制作docker依赖镜像
# 使用Python 3.11官方镜像作为基础镜像 FROM python:3.11-slim # 设置工作目录 WORKDIR /app # 设置环境变量 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV FLASK_APP=app.py ENV FLASK_ENV=production # 安装系统依赖 RUN apt-get update && apt-get install -y \ gcc \ g++ \ libffi-dev \ libssl-dev \ && rm -rf /var/lib/apt/lists/* # 复制requirements文件 COPY requirements.txt . # 安装Python依赖 RUN pip install --no-cache-dir -r requirements.txt/Users/mac/Desktop/wk/project_AIBrand/03 code/backend docker build -t aibrand-python-env:v1 .#推送到私有仓库,但是需要在服务器上传连接私有仓库,不如直接shell文件上传方便 # docker tag aibrand-backend-env bobbbbbb/aibrand-backend-env:latest # docker push bobbbbbb/aibrand-backend-env:latest# 镜像迁移到服务器 docker save -o aibrand-python-env-v1.tar aibrand-python-env:v1 # 文件传输到服务器 docker load -i aibrand-python-env-v1.tar -
配置build shell

#!/bin/bash
cd 03\ code/backend/
echo "########build image#########"
docker compose build --no-cache
echo "########start service#########"
docker compose up -d
echo "########done#########"
# 配置jenkins启动docker的权限
sudo usermod -aG docker jenkins # 将 jenkins 用户加入 docker 组
sudo systemctl restart docker # 重启 Docker 服务
sudo systemctl restart jenkins # 重启 Jenkins(可选)
sudo -u jenkins docker ps # 检查 Jenkins 用户是否能访问 Docker
- 重新bulid,项目已更新,并重新部署
6.3.7 通过pipeline构建cicd工作流
pipeline {
agent any
stages {
stage('拉取git') {
steps {
checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[url: 'https://gitee.com/fubob/git-practise.git']])
}
}
stage('代码检测') {
steps {
echo '通过sonarQube代码质量检测 - 成功'
}
}
stage('镜像构建') {
steps {
echo '通过docker构建镜像 - 成功'
}
}
stage('将镜像推送到harbor') {
steps {
echo '将镜像推送到harbor - 成功'
}
}
stage('通过publish ssh over通知服务器') {
steps {
echo '通过publish ssh over通知服务器 - 成功'
}
}
}
}
6.4 拉取代码
# 切换到main分支,上线的分支
git tag v1.0.0
git push origin v1.0.0
jenkins构建git拉取参数

根据tag进行guild


浙公网安备 33010602011771号