Skip to content

Commit 7fd1983

Browse files
author
公众号:Rong姐姐好可爱
authored
Merge pull request #131 from lir0115/feat/jenkins
feat(Jenkins): 新增安装、部署配置,记录流程文档
2 parents 1c2e4e2 + 5855015 commit 7fd1983

File tree

8 files changed

+211
-17
lines changed

8 files changed

+211
-17
lines changed

code/docker/jenkins/Dockerfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
FROM jenkins/jenkins:2.426.2-jdk17
2+
3+
## 设置管理用户
4+
USER root
5+
6+
## 安装核心依赖
7+
RUN apt-get update && apt-get install -y lsb-release
8+
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
9+
https://download.docker.com/linux/debian/gpg
10+
RUN echo "deb [arch=$(dpkg --print-architecture) \
11+
signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
12+
https://download.docker.com/linux/debian \
13+
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
14+
RUN apt-get update && apt-get install -y docker-ce-cli
15+
16+
USER jenkins
17+
18+
## 运行插件
19+
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

code/docker/jenkins/build.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
## 构建自定义jenkins镜像
2+
docker build -t jenkins .
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
##
2+
## 支持服务:
3+
## - Jenkins 端口映射 8080(连接端口) 50000(管理端口)
4+
##
5+
##
6+
## 运行指令:
7+
## - 统一刷新启动 docker-compose up -d
8+
## - 挂掉 docker-compose down
9+
## - 重启 docker-compose restart
10+
##
11+
version: '3'
12+
services:
13+
jenkins:
14+
image: jenkins/jenkins
15+
container_name: jenkins
16+
hostname: jenkins_dev
17+
restart: unless-stopped
18+
ports:
19+
- "6080:8080"
20+
- "6081:50000"
21+
## 文件映射
22+
volumes:
23+
- /etc/localtime:/etc/localtime:ro
24+
- $(pwd)/jenkins:/var/jenkins_home
25+
## 支持容器内使用Mac本机docker服务
26+
## - /usr/local/bin/docker:/usr/bin/docker
27+
## - /var/run/docker.sock:/var/run/docker.sock
28+
environment:
29+
JENKINS_OPTS: "--prefix=/jenkins"
30+
JENKINS_ARGS: "--prefix=/jenkins"
31+
# 用户名
32+
user: root

code/docker/jenkins/docker.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## docker安装jenkins
2+
docker run \
3+
--name jenkins-blueocean \
4+
--restart=on-failure \
5+
-d \
6+
--env DOCKER_HOST=tcp://docker:2376 \
7+
--env DOCKER_CERT_PATH=/certs/client \
8+
--env DOCKER_TLS_VERIFY=1 \
9+
--publish 8080:8080 \
10+
--publish 50000:50000 \
11+
--volume jenkins-data:/var/jenkins_home \
12+
--volume jenkins-docker-certs:/certs/client:ro \
13+
jenkins/jenkins

docs/manuscripts/develop-skill/code-manager/CI-CD.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ jobs:
139139
release_name: v${{ steps.releaseVersion.outputs.version }}
140140
body: |
141141
Release ${{ steps.releaseVersion.outputs.version }}
142-
142+
143143
### Features
144144
145145
### Bug Fixes
@@ -154,8 +154,6 @@ jobs:
154154
asset_path: ./JavaScriptCollection.zip
155155
asset_name: JavaScriptCollection.zip
156156
asset_content_type: application/zip
157-
158-
159157
```
160158
161159
## 参考资料
34.7 KB
Loading
132 KB
Loading

docs/manuscripts/develop-skill/code-manager/jenkins.md

Lines changed: 144 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,148 @@ permalink: /manuscripts/develop-skill/code-manager/jenkins.html
55

66
# Jenkins
77

8+
## 安装
9+
10+
Jenkins支持多种安装方式,不限于Mac系统、Linux系统,由于Docker容器技术的普及,这里更加推荐使用容器安装。
11+
具体可以参考[官网安装说明](https://www.jenkins.io/doc/book/installing/)
12+
13+
### Mac系统
14+
15+
在Mac系统中,Jenkins的安装可以借助`brew`工具,例如:
16+
17+
```bash
18+
## 安装
19+
brew install jenkins-lts
20+
## M1芯片添加arch -arm64 安装
21+
arch -arm64 brew install jenkins-lts
22+
23+
## 启动
24+
brew services start jenkins-lts
25+
## 重启
26+
brew services restart jenkins-lts
27+
## 手动更新
28+
brew upgrade jenkins-lts
29+
```
30+
31+
### Linux系统
32+
33+
基于apt-get进行安装,`LTS`(长期支持)版本 每 12 周从常规版本流中选择一次作为该时间的稳定版本时期
34+
35+
```bash
36+
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
37+
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
38+
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
39+
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
40+
/etc/apt/sources.list.d/jenkins.list > /dev/null
41+
42+
## 软件更新
43+
sudo apt-get update
44+
## 安装jenkins
45+
sudo apt-get install jenkins
46+
```
47+
48+
基于yum进行安装,安装`LTS`(长期支持)版本 ,每 12 周从常规版本流中选择一次作为该时间的稳定版本时期
49+
50+
```bash
51+
sudo wget -O /etc/yum.repos.d/jenkins.repo \
52+
https://pkg.jenkins.io/redhat-stable/jenkins.repo
53+
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
54+
55+
## 软件更新
56+
sudo yum upgrade
57+
## 安装jenkins需要的jdk
58+
sudo yum install fontconfig java-17-openjdk
59+
## 安装jenkins
60+
sudo yum install jenkins
61+
## 重新加载配置
62+
sudo systemctl daemon-reload
63+
```
64+
65+
在Linux系统中安装完成后,可以对jenkins服务进行管理,设置开机提供、维护服务状态等,例如:
66+
67+
```bash
68+
## 设置开机重启
69+
sudo systemctl enable jenkins
70+
## 启动
71+
sudo systemctl start jenkins
72+
## 暂停
73+
sudo systemctl stop jenkins
74+
## 重启
75+
sudo systemctl restart jenkins
76+
## 查看服务状态
77+
sudo systemctl status jenkins
78+
```
79+
80+
### 容器安装
81+
82+
使用Docker安装,注意文件映射,执行命令:
83+
84+
@[code sh](@code/docker/jenkins/docker.sh)
85+
86+
使用Docker-Compose安装,配置如下:
87+
88+
@[code yaml](@code/docker/jenkins/docker-compose.yaml)
89+
90+
不论使用Docker还是Docker-Compose安装Jenkins服务,都会启动Jenkins容器服务,对于容器可以使用一些常用的命令进行管理,例如:
91+
892
```bash
9-
docker run \
10-
-u root \
11-
-d \
12-
--name=jenkins-fix \
13-
--restart=always \
14-
-p 8082:8080 \
15-
-p 50002:50000 \
16-
-v /data/jenkins-fix/data/:/var/jenkins_home \
17-
-v /var/run/docker.sock:/var/run/docker.sock \
18-
-v "$HOME":/home \
19-
jenkins/jenkins
20-
```
21-
22-
对应docker-compose.yaml文件
93+
## 启动
94+
docker start jenkins
95+
## 停止
96+
docker stop jenkins
97+
## 重启
98+
docker restart jenkins
99+
## 查看容器信息
100+
docker inspect jenkins
101+
## 查看容器日志
102+
docker logs jenkins
103+
104+
## 集群管理
105+
docker-compose up -d
106+
docker-compose down
107+
docker-compose start jenkins
108+
```
109+
110+
除了使用官方提供的jenkins镜像,还可以自定义镜像,这个在jenkins官网有详细说明,
111+
这里基于jenkins镜像构建的核心功能提供对应的`Dockerfile`配置。 自定义jenkins镜像可以基于此来拓展,参考:
112+
113+
@[code dockerfile](@code/docker/jenkins/Dockerfile)
114+
115+
配置完成后,可以使用`docker build`命令构建,例如:
116+
117+
@[code sh](@code/docker/jenkins/build.sh)
118+
119+
## 使用
120+
121+
当Jenkins服务正常启动后,Jenkins默认暴露`8080``50000`两个端口,在浏览器中访问<http://127.0.0.1:8080即可Jenkins网站>
122+
> 这里需要明白,Jenkins的端口也可以自定义或者进行端口映射
123+
124+
![浏览器访问Jenkins](./images/jenkins-lock.png)
125+
126+
按照提示到目标路径下,找对对应的初始化密码,粘贴到输入框中就可以顺利使用Jenkins啦
127+
128+
![打印初始化密码](./images/jenkins-cat-pwd.png)
129+
130+
如果是本机部署,在终端中执行命令,打印密码
131+
132+
```shell
133+
## 对应
134+
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
135+
```
136+
137+
如果是Docker容器部署,需要进入容器找到对应文件,打印密码。例如:
138+
139+
```shell
140+
## 进入容器
141+
docker exec -it jenkins sh
142+
## 打印密码
143+
cat /var/jenkins_home/secrets/initialAdminPassword
144+
## 退出容器
145+
exit
146+
```
147+
148+
上面的命令也可以精简为:
149+
150+
```sh
151+
sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
152+
```

0 commit comments

Comments
 (0)