基于java开发的一种持续集成持续部署的工具
Jenkins 在 DevOps 中的作用
- 持续集成(CI)
自动从代码仓库(如 Git)拉取最新代码
运行构建脚本(如 Maven/Gradle/NPM 等)
执行自动化测试,及时发现问题
将构建结果展示在界面上(成功/失败)
- 持续部署(CD)
将成功构建的应用自动部署到测试环境/生产环境
可以集成 Docker、Kubernetes 等容器平台
- 插件丰富
Jenkins 拥有超过 1800+ 插件,可集成:
GitLab/GitHub
SonarQube(代码质量)
JIRA(项目管理)
Slack/邮件通知等
- 流水线(Pipeline)
使用 Jenkinsfile 编写完整的 CI/CD 脚本(支持 Groovy DSL)
可视化构建流程,支持并行任务、条件判断等复杂逻辑
6.1jenkins安装
jenkins官网地址:Jenkins
找到官网后,需要选择稳定长期版本安装,否则安装的都是最新版本
找到主页的download
因目前是通过docker仓库安装,所以要通过官方提供的版本号安装
6.2选择版本
选择带有LTS长期稳定的版本,并且记好版本号
点击下面的docker仓库源
找到项目包
且找到LTS后缀名的项目包
复制右边的仓库下载地址
docker pull jenkins/jenkins:2.504.1-lts
root@runxun:/etc/docker# docker pull jenkins/jenkins:2.504.1-lts
2.504.1-lts: Pulling from jenkins/jenkins
cf05a52c0235: Pull complete
7ccee2ccb16f: Pull complete
1e0adc669c69: Pull complete
1dae579966be: Pull complete
b59aedb439de: Pull complete
4889d12fb2c3: Pull complete
6e9c23e5660b: Pull complete
bfa1925140b2: Pull complete
115fd2172889: Pull complete
319741246a0e: Pull complete
4f318a2a0da7: Pull complete
7900846016b7: Pull complete
Digest: sha256:9becce9e64da749e5fcab730c88445d21fdcf6ce1a416f4e0a42273b09b4ac21
Status: Downloaded newer image for jenkins/jenkins:2.504.1-lts
docker.io/jenkins/jenkins:2.504.1-lts
root@runxun:/etc/docker# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins 2.504.1-lts ed331f9d3352 8 days ago 466MB
mkdir docker #创建docker文件夹
mkdir jenkins_docker #创建jenkins目录
cd jenkins_docker
vim jenkins-compose.yml #创建配置文件
version: "2.35.0"
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "9090:8080" # 本地 9090 映射容器 8080(Jenkins Web UI)
- "50000:50000" # 代理端口
volumes:
- ./data:/var/jenkins_home
docker-compose up -d #通过配置文件启动jenklins镜像
docker logs -f jenklins #查看lenklins启动日志
#第一次启动会报错,提示,data目录没有权限写入日志
chmod 777 data #给到这个文件足够权限
启动成功
!!!因为端口冲突,容器内地址为8080,映射到宿主机的端口为9090
通过本机ip+9090,能够访问jenklins web页面
6.3密码登录
在系统启动日志中会提供临时密码,通过日志查看命令,将临时密码复制
docker logs -f jenklins #查看日志
复制临时密码登录