一、基础环境
1、系统:Ubuntu 22.04
2、基础软件:docker python3 docker-compose
二、基础软件安装
# 更新源
apt update
# docker安装
apt install docker.io
# python3安装
apt install python3.9
# docker-compose安装
python3 -m pip install docker-compose
三、构建jenkins的docker-compose.yml
vim /var/docker/docker-compose.yml
# docker-compose.yml 内容如下:
version: "3"
services:
jenkins:
user: root
restart: always
image: jenkinsci/blueocean
container_name: jenkinsci
network_mode: host
environment:
TZ: Asia/Shanghai
volumes:
- /var/docker/jenkins/jenkins_home:/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime
参数说明:
1)建议将容器内的 /var/jenkins_home 挂载到宿主机上,这样就可以让容器随时销毁创建而不影响服务与数据内容
2)network_mode: host,这样的话 jenkins 内部就能够直接访问到宿主机的本地端口,这个很关键,因为后面需要从 jenkins 内部来通过本地端口访问宿主机的 Docker 实例 API
3)挂载进去之后的 /var/run/docker.sock 文件用户是 root,而 Jenkins 容器内部的执行用户其实是 jenkins,所以需要指定user :root,用root用户进去才能正常执行docker相关操作
四、启动服务
# 创建文件夹
mkdir -p /var/docker/jenkins/jenkins_home
# 权限
chmod 777 /var/docker/jenkins/jenkins_home
# 进入到docker-compose.yml目录
cd /var/docker
# 启动服务
docker-compose up -d
五、启动后配置
1、在浏览器中输入:http://serverIp:port/访问jenkins,serverIp为docker宿主机的ip,port即为宿主机映射的端口(8080为默认端口)。我的即为:http://45.92.246.141::8080/
2、获取初始密码
# 获取初始密码执行命令
docker exec jenkinsci cat /var/jenkins_home/secrets/initialAdminPassword
3、点击安装推荐的插件
注:有两个插件安装失败,后续可以修改源后另行安装,可直接点击继续
4、新建管理员用户,最后点击重启
5、修改镜像源
源地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
方式一:
登陆jenkins系统,通过页面进行修改
首页-->系统管理--> 插件管理(在系统配置中) --> 高级 --> 站点升级URL(拖到最下面)
更换url后点击提交
然后到后台重启jenkins服务,docker restart jenkinsci
方式二:
修改hudson.model.UpdateCenter.xml文件
查看文件路径:
find / -name *.UpdateCenter.xml
修改后:
重启jenkins容器
六、插件安装
首页-->系统管理--> 插件管理(在系统配置中) -->可选插件
安装报错:
分析了很久,走了很多弯路,最后是因为jenkins版本太低了,导致很多包都不支持,升级jenkins后终于能正常安装插件了
jenkins升级
首页-->系统管理-->自动升级按钮-->jenkins.war安装完成后点击重启
插件可以正常安装