jenkins是连接代码、构建、发布的桥梁,我们可以简单认为他是一个任务编排工具,安装jenkins,我们依然使用docker安装
在宿主机 192.168.93.120(tool)上安装jenkins
首先创建目录:/usr/local/docker/jenkins_docker目录,在目录下创建文件 docker-compose.yml,内容如下
version: '3.1'
services:
jenkins:
image: 'jenkins/jenkins:2.319.1'
container_name: jenkins
restart: always
ports:
- '8080:8080'
- '50000:50000'
volumes:
- './data/:/var/jenkins_home/'
新建/usr/local/docker/jenkins_docker/data目录,为了方便演示,直接赋予最高权限
chmod -R 777 data
然后在当前文件目录下执行以下命令,启动容器
docker-compose up -d
访问 192.168.93.120:8080,稍等一会儿,即可看到jenkins,初次访问需要原始密码,执行以下命令查看原始密码:
docker-compose logs -f
或者进入容器,查看密码文件
docker exec -it jenkins bash
cat /var/jenkins_home/secrets/initialAdminPassword
选择默认插件安装,提示安装失败的插件,也不用管,后续用到什么插件,我们再单独安装什么插件。安装过程大概20分钟
1、代码拉取需要“Pipeline”插件支持,请确认该插件已经安装完成。
2、请在git新建项目,用于测试,为了方便测试,新建的项目可以设置公开项目。
3、我们采用流水线方式,构建项目,流水线模式,可以自定义N个阶段,每个阶段,通过命令干一件事。所有命令,都可以使用流水线语法进行翻译,翻译成流水线专有语法,后续会详细讲解。
4、在jenkins新建流水线项目
6、流水线配置里面,选择高级,如图设置。注意指定分支(如果是最新的gitlab,默认分支不再是master,而是main)
7、在项目代码根目录下,我们新建“Jenkinsfile”文件,一定要设置为这个名字,是固定的,当然,你可以在流水线高级里面配置,在这我们先不修改
文件骨架内容如下,先做测试
pipeline {
agent any
stages {
stage('拉取代码') {
steps{
echo '拉取代码成功'
}
}
stage('构建代码') {
steps{
echo '构建代码成功'
}
}
stage('代码检测') {
steps{
echo '代码检测成功'
}
}
stage('制作镜像') {
steps{
echo '制作镜像成功'
}
}
stage('推送到HUB') {
steps{
echo '推送到HUB成功'
}
}
stage('传输yml文件传输到master') {
steps{
echo '传输yml文件传输到master成功'
}
}
stage('远程执行容器化部署') {
steps{
echo '远程执行容器化部署成功'
}
}
}
}
8、点击项目中的“立即构建”,如果出现下图,则说明成功
9、接下来,我们的配置工作,主要在编写调整 Jenkinsfile 文件,这里有个技巧,可以点击流水线语法,在实例步骤里面,选择我们想要做的动作,然后系统会生成对应的流水线语法,然后复制粘贴到对应阶段即可,这里我们以拉取代码示例
按图配置,然后 选择“生成流水线脚本”
复制生成好的内容,粘贴到对应阶段,然后我们再push代码到仓库,再构建项目,此时“Jenkinsfile ”文件如下图
pipeline {
agent any
stages {
stage('拉取代码') {
steps{
checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[url: 'http://192.168.93.120:8989/root/devops-demo.git']])
}
}
stage('构建代码') {
steps{
echo '构建代码成功'
}
}
stage('代码检测') {
steps{
echo '代码检测成功'
}
}
stage('制作镜像') {
steps{
echo '制作镜像成功'
}
}
stage('推送到HUB') {
steps{
echo '推送到HUB成功'
}
}
stage('传输yml文件传输到master') {
steps{
echo '传输yml文件传输到master成功'
}
}
stage('远程执行容器化部署') {
steps{
echo '远程执行容器化部署成功'
}
}
}
}
构建完成后检查日志
我们可以看到,已经从git拉取了代码
我们再去jenkins的工作目录验证
进入容器内部(在tool机器执行)
docker exec -it jenkins bash
cd /var/jenkins_home/workspace/devops-demo
ls
我们可以看到,在jenkins的工作目录workspace下面,已经有项目devops-demo目录,并且目录内,也有了我们的项目文件。自此,第一步拉取代码完成。接下来我们将使用maven来构建我们的项目,将源码构建成jar包。
《上一篇:(3)devops动手实践,在家也可以玩--逐步搭建(git搭建)(1/5)》 总目录 《下一篇:(5)devops动手实践,在家也可以玩--逐步搭建(代码构建)(3/5)》