【Jenkins】入门学习
- [1. 相关文档](#1. 相关文档)
-
- [1.1 Docker安装](#1.1 Docker安装)
- [1.2 插件源换成清华源](#1.2 插件源换成清华源)
-
- [1.2.1 方式一:Web 页面直接修改(优先,最简单)](#1.2.1 方式一:Web 页面直接修改(优先,最简单))
- [1.2.2 方式二:容器内 sed 批量替换(根治,推荐给 docker 部署)](#1.2.2 方式二:容器内 sed 批量替换(根治,推荐给 docker 部署))
- [1.2.3 方式三:初始化卡住的时候(还没进后台)](#1.2.3 方式三:初始化卡住的时候(还没进后台))
- 2.Docker部署GitLab
1. 相关文档
Jenkins docker hub https://hub.docker.com/r/jenkins/jenkins?tag=latest-jdk21
网友有关Jenkins的文档 https://gitee.com/liu_guo_feng/notes/blob/master/服务器/linux/jenkins/安装jenkins.md
jenkins安装及国内源配置 https://www.cnblogs.com/yw0219/p/18734501
docker源的配置
bash
vim /etc/docker/daemon.json
{
"experimental": false,
"registry-mirrors": [
"https://9migda19.mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://docker.1panel.live"
],
"builder": {
"gc": {
"enabled": true,
"defaultKeepStorage": "20GB"
}
}
}
1.1 Docker安装
腾讯云 Docker 容器用户使用指南 https://cloud.tencent.com/document/product/1397/110965
bash
[root@VM-0-17-centos ~]# docker pull jenkins/jenkins:latest-jdk21
# 1. 创建数据目录 + 权限(jenkins容器内用户uid=1000)
mkdir -p /data/jenkins_home
chown -R 1000:1000 /data/jenkins_home
# 2. 启动jenkins,直接用jenkins:latest-jdk21镜像
docker run -d \
--name jenkins \
--restart always \
-p 8080:8080 \
-p 50000:50000 \
-e TZ=Asia/Shanghai \
-e JAVA_OPTS="-Xmx1536m -Xms512m" \
-v /data/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:latest-jdk21
⭐ 重点加了 -Xmx1536m 限制最大堆内存 1.5G,防止 Jenkins 把你仅剩内存吃光、OOM 崩溃,适配你的 3.6G 内存机器!
启动后操作
bash
# 看容器是否起来
docker ps
# 获取初始管理员密码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
浏览器访问:http://你的公网IP:8080
1.2 插件源换成清华源
1.2.1 方式一:Web 页面直接修改(优先,最简单)
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

1.2.2 方式二:容器内 sed 批量替换(根治,推荐给 docker 部署)
sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' /data/jenkins_home/updates/default.json

1.2.3 方式三:初始化卡住的时候(还没进后台)
bash
vim /data/jenkins_home/hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>

2.Docker部署GitLab
bash
# 停止并删除当前异常gitlab
docker stop gitlab
docker rm gitlab
# 清理旧目录(旧配置已经错乱,必须删)
rm -rf /data/gitlab
mkdir -p /data/gitlab/{config,logs,data}
# 全新启动命令
docker run -d \
--name gitlab \
--restart always \
-p 8090:80 \
-p 8443:443 \
-p 2222:22 \
--shm-size 1g \
-e TZ=Asia/Shanghai \
-e GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.1.13'; gitlab_rails['gitlab_shell_ssh_port'] = 2222; nginx['listen_https'] = false; nginx['redirect_http_to_https'] = false;" \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
registry.gitlab.cn/omnibus/gitlab-jh:17.7.0-jh.0
启动后等待 6~10 分钟 让它 reconfigure 完成、变成 healthy。
等就绪后测试:
bash
# 进入容器内部测试
docker exec -it gitlab curl -I 127.0.0.1
这条返回 200,就正常了。
然后宿主机:
bash
curl -I 127.0.0.1:8090
访问地址依旧是:http://192.168.1.13:8090,GitLab 内部会自动补全端口,clone 地址自动带上:8090,不用担心。
root 账号密码登录
bash
⚡ root@node1 ~ docker exec gitlab cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: h24EzjCJ7kZZEoJH8LKeMmapLqKNgLR4/81ob+BNLnY=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.