Jenkins实战流程
# Jenkins是什么?
- Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
- Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
# 简单流程
本文主要以以下内容进行撰文
# Jenkins安装
# 1.安装 Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker --now
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
完整版:
# 1. 安装必要的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 这条命令安装了 Docker 所需的依赖包。`yum-utils` 提供了 yum-config-manager 等实用工具,
# `device-mapper-persistent-data` 和 `lvm2` 是为了 Docker 的存储驱动。
# 2. 设置阿里云 Docker 镜像源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 这条命令添加了阿里云的 Docker 镜像源,使用阿里云的镜像源可以提高下载速度和稳定性。
# 3. 查看可安装的 Docker 版本
yum list docker-ce --showduplicates | sort -r
# 这条命令列出了可供安装的 Docker 版本,并按版本号从高到低排序,方便选择需要的版本。
# 4. 安装指定版本的 Docker
yum -y install docker-ce-20.10.10-3.el7
# 这条命令安装指定版本的 Docker (20.10.10-3.el7)。
# 5. 查看 Docker 版本
docker -v
# 这条命令验证 Docker 是否安装成功,并显示 Docker 的版本号。
# 6. 启动 Docker 服务
systemctl start docker
# 这条命令启动 Docker 服务。
# 7. 查看 Docker 启动状态
systemctl status docker
# 这条命令查看 Docker 服务的运行状态,确保 Docker 已经正确启动。
# 8. 安装 lsof 命令以查看端口占用情况
yum install -y lsof
# 这条命令安装 lsof 工具,用于查看当前系统中端口的占用情况。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 2.配docker加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 3.部署Jenkins
docker pull jenkins/jenkins:2.455-jdk21
docker run \
-u root \
--rm \
-d \
-p 15001:8080 \
-p 15002:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:2.455-jdk21
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
可选项:docker-compose 文件
version: '3'
services:
jenkins:
image: "jenkins/jenkins:2.455-jdk21"
container_name: jenkins
restart: always
user: root
ports:
- "15001:8080"
- "15002:50000"
volumes:
- jenkins-data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
volumes:
jenkins-data:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Jenkins配置
https://www.jenkins.io/zh/doc/book/installing/ (opens new window)
docker logs -f jenkins_code
,找到密码- 进入
自定义Jenkins
,安装推荐的插件
# 1.插件安装
# 安装插件失败
问题描述:当初次启动 Jenkins 时,选择安装推荐插件会导致插件安装缓慢甚至失败的问题,主要原因是下载源的问题。
解决办法:
方法1:更新下载源
1. 进入 Jenkins 的系统设置 -> 插件管理 -> 高级
2. 在页面下方找到“升级站点”,将 "http://mirror.esuni.jp/jenkins/updates/update-center.json" 复制粘贴到输入框内,然后提交
备选链接:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
3. 重启 Jenkins 以使更改生效(在URL后添加“restart”,然后回车)
方法2:手动下载 Jenkins.war 包
1. 在线下载最新的 Jenkins.war 包,下载完成后上传到服务器
2. 若要确认 Jenkins 版本是否过低,可进入“系统管理”页面查看
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2.配置环境
# 3.配置jdk
root@bf3827153512:/# echo $JAVA_HOME
/opt/java/openjdk
1
2
2
# 4.安装插件
# 配置流程
以上介绍了如何安装 docker 和 jinkins。下面我们开始部署一个应用,它的最终目的是要将镜像 push 到阿里云的仓库
# 1.从git中拉代码
我们完成了以上的步骤,下异步就要开始从 git 中拉取代码了
- 配置全局凭据:git账号+密码
- workspace配置
# 2.微服务脚本编写
代码源: Git
# 前置步骤
编写一个 shell 脚本用于登录阿里云镜像,并构建通用组件 dcloud-common
:
echo "登录阿里云镜像"
docker login --username=t2799@qq.com --password=your_password registry.cn-shenzhen.aliyuncs.com
echo "构建 dcloud-common"
cd dcloud-common
# 使用 Maven 安装构建通用组件
mvn install
# 列出当前目录的文件和文件夹(all long human)
ls -alh
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 后置命令
在构建完成后,进入账户服务目录 dcloud-account
,构建并推送 Docker 镜像:
# 列出当前目录的文件和文件夹
ls -alh
# 进入 dcloud-account 目录
cd dcloud-account
# 列出 dcloud-account 目录的文件和文件夹(all long human)
ls -alh
# 开始构建账号服务
echo "账号服务构建开始"
mvn install -Dmaven.test.skip=true dockerfile:build
# 给构建的 Docker 镜像打标签
docker tag dcloud/dcloud-account:latest registry.cn-shenzhen.aliyuncs.com/your_project/dcloud-account:v1.1
# 推送 Docker 镜像到阿里云镜像仓库
docker push registry.cn-shenzhen.aliyuncs.com/your_project/dcloud-account:v1.1
# 清理 Maven 构建目录
mvn clean
echo "账号服务构建推送成功"
echo "=======构建脚本执行完毕====="
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24