使用Docker安装部署Jenkins

这篇具有很好参考价值的文章主要介绍了使用Docker安装部署Jenkins。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要记录如何通过docker安装jenkins,并且通过jenkins部署项目

前置准备jenkins所在宿主服务器首先安装好jdk、maven

一、配置JDK环境

注意:选择适合自己的JDK,并且注意安装JDK的系统

地址:https://www.oracle.com/java/technologies/downloads/#java8

docker 搭建jenkins,笔记总结,docker,jenkins,容器

1、卸载linux系统自带的JDK(建议直接用超级用户,不然卸载的时候可能会报权限不够的error,之后的操作也需要用root权限)

1.1、切换用户:su root

su root

1.2、查看自带JDK命令:rpm -qa | grep jdk

rpm -qa | grep jdk

1.3、卸载自带JDK命令:rpm -e --nodeps 要卸载的JDK

rpm -e --nodeps 要卸载的JDK

2、在usr/local目录下创建java目录,把我们下载好的JDK压缩包上传到 创建好的 java目录下(我放在该目录下了,也可以放在其他目录下)

创建安装目录:mkdir java

cd /usr/local
mkdir java
cd java

3、把压缩包解压到当前目录(我们创建的java目录下),解压命令:tar -zxvf 所要解压的文件名

tar -zxvf 所要解压的文件名

4、编辑profile文件:vim /etc/profile
把光标移到最后一行,键盘按 i,进入编辑模式,然后插入以下内容:(注意自己所建java的路径、jdk的名称)

JAVA_HOME=/usr/local/java/jdk1.8.0_381
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

然后按ESC退出编辑模式,‘shift + :’,输入wq,回车,完成保存并退出

5、让编辑的文件生效执行:source /etc/profile

6、最后验证JDK安装是否成功:java -version

[root@aliyun ~]# cd /usr/local/java
[root@aliyun java]# ls
jdk-8u381-linux-x64.tar.gz
[root@aliyun java]# tar -zxvf jdk-8u381-linux-x64.tar.gz
[root@aliyun java]# vim /etc/profile
[root@aliyun java]# source /etc/profile
[root@aliyun java]# java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)

出现上述显示,则完毕!

二、配置Maven环境

1、准备Maven安装包

打开Maven官网:Maven – Download Apache Maven

我选择是3.9.3版本(选择适合自己的版本),找到后缀名是.tar.gz的文件下载,如图所示:

docker 搭建jenkins,笔记总结,docker,jenkins,容器

1.1、创建安装目录:mkdir maven

cd /usr/local
mkdir maven
cd maven

1.2、把压缩包解压到当前目录(我们创建的maven目录下),解压命令:tar -zxvf 所要解压的文件名

tar -zxvf 所要解压的文件名

1.3、解压完毕以后,新建一个repository仓库,用于存放Maven下载下来的jar包

mkdir repository

2、配置镜像

编辑settings.xml文件

vi apache-maven-3.9.3/conf/settings.xml

按i键进入编辑模式

1.设置Maven仓库,就是我刚才新建的文件夹

<localRepository>/maven/repository</localRepository>docker 搭建jenkins,笔记总结,docker,jenkins,容器
2.配置为阿里云镜像地址

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>docker 搭建jenkins,笔记总结,docker,jenkins,容器

按Esc键退出编辑模式,输入:wq保存并退出vim编辑器

3、配置环境变量

编辑profile文件

vim /etc/profile

按i键进入编辑模式

添加如下环境变量

export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.3
export PATH=$PATH:$MAVEN_HOME/bin

docker 搭建jenkins,笔记总结,docker,jenkins,容器

按Esc键退出编辑模式,输入:wq保存并退出vim编辑器

运行以下命令使profile文件生效

source /etc/profile

检查环境配置是否成功

mvn -v

docker 搭建jenkins,笔记总结,docker,jenkins,容器

大功告成!

三、Jenkins环境搭建–Docker

#查看你需要安装的版本
docker search jenkins
#安装镜像包
docker pull jenkins/jenkins   #默认安装最新版本
#安装指定版本 指令入下
docker pull jenkins/jenkins:xx(版本号)
#查看是否安装成功(查看镜像包)
docker images

1、使用以下命令下载Jenkins镜像(安装最新版)

docker pull jenkins/jenkins:latest

2、启动并创建Jenkins容器

#启动命令:
docker run -u root -d \
-p 10240:8080 -p 10241:50000 \
-v /var/jenkins_home/workspace/:/var/jenkins_home/workspace/ \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /usr/local/java/jdk1.8.0_381:/usr/local/java \
-v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
--name myjenkins jenkins/jenkins
 
 #解释:
-d :后台运行
-p:10240:8080 镜像8080 :端口映射到宿主机 10240端口
-p:10241:50000 镜像50000 :端口映射到宿主机 10241端口
-v:/var/jenkins_home/workspace/:/var/jenkins_home/workspace/
/var/jenkins_home/workspace/ 宿主机的Jenkins目录挂载路径 jenkins
/var/jenkins_home/workspace/ 镜像服务器中jenkins的工作目录
-v /usr/bin/docker:/usr/bin/docker  : 挂载docker
-v /usr/local/java/jdk1.8.0_381:/usr/local/java : 挂载映射宿主机jdk
-v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven : 挂载映射宿主机maven
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \ :同步时间
--name myjenkins(自定义容器名称) jenkins/jenkins(需要映射容器名称)

如果执行命令发现jenkins没有启动成功,很大概率是因为挂载的目录没有权限,需要授权

chown -R 1000:1000 /root/apply/jenkins_mount
chown -R 1000:1000 /root/apply/apache-maven-3.8.4 
chown -R 1000:1000 /usr/local/jenkins 
chown -R 1000:1000 /etc/localtime

jenkins容器启动以后,咱们就需要到阿里云或者是腾讯云中,将端口为10240打开

浏览器访问:你的服务器ip:10240。不出意外,你就能访问到jenkins了。

docker 搭建jenkins,笔记总结,docker,jenkins,容器

3、进入容器,查看登录初始化密码,执行命令:

docker exec -it myjenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

docker 搭建jenkins,笔记总结,docker,jenkins,容器

选择安装推荐插件

docker 搭建jenkins,笔记总结,docker,jenkins,容器

2.3版本安装插件很多失败,我换成了2.415版本

docker 搭建jenkins,笔记总结,docker,jenkins,容器

安装完成后创建管理员用户

docker 搭建jenkins,笔记总结,docker,jenkins,容器

4、配置Jenkins

4.1、安装三个插件: Publish Over SSH和Maven Integration和GitLab ,点击: 系统管理->插件管理 -> 可选插件中进行输入安装。如下图所示:

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器

4.2、安装好上一步中的几个插件之后,接下来需要在jenkins中配置一下Git和SSH: 点击:系统管理 -> 系统配置 -> 找到Git和SSH

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器

4.3、配置JDK和Maven: 点击:系统管理 -> 全局工具配置 -> 找到JDK和Maven

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器

四、使用Jenkins构建项目

Jenkins中构建项目的类型有很多,常用的有以下三种:

  • 自由风格软件项目(FreeStyle Project)(推荐)
  • Maven项目(Maven Project)
  • 流水线项目(Pipeline Project)(推荐)

实际上每种类型的构建都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。从灵活度上来说,流水线类型是最高的。

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器

1、Pipeline流水线项目构建(推荐)

简单来说,Pipeline就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

Pipeline支持两种语法:声明式(Declarative)和脚本式(Scripted Pipeline)语法。

注意:需要安装Pipeline插件

docker 搭建jenkins,笔记总结,docker,jenkins,容器

1.1、声明式项目构建

docker 搭建jenkins,笔记总结,docker,jenkins,容器

  • stages:代表整个流水线的所有执行阶段,通常stages只有1个,里面包含多个stage。
  • stage:代表流水线中的某个阶段,可能出现n个。一般分为拉取代码、编译构建、部署等阶段。
  • steps:代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码、ssh远程发布等任意内容。

这里,我们编写一个简单声明式的Pipeline,来感受一下整个构建过程:

pipeline {
 agent any
 stages {
   stage('拉取代码') {
    steps {
      echo '拉取代码'
    }
   }
   stage('编译构建') {
    steps {
      echo '编译构建'
    }
   }
   stage('项目部署') {
    steps {
      echo '项目部署'
    }
   }
 }
}

开始构建,并输出构建结果

docker 搭建jenkins,笔记总结,docker,jenkins,容器

1.2、脚本式项目构建

docker 搭建jenkins,笔记总结,docker,jenkins,容器

  • Node :节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境。
  • Stage :阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build、Test、Deploy,Stage 是一个逻辑分组的概念。
  • Step :步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,由各类 Jenkins 插件提供,比如命令:sh ‘make’,就相当于我们平时 shell 终端中执行 make 命令一样。

编写一个简单的脚本式Pipeline:

node {
   def mvnHome
   stage('Preparation') {
       echo '拉取代码'
   }
   stage('Build') {
       echo '编译构建'
   }
   stage('Results') {
       echo '项目部署'
   }
}

开始构建,并输出构建结果

docker 搭建jenkins,笔记总结,docker,jenkins,容器

1.3、使用脚本构建项目

如果不会写流水线脚本,选择流水线语法可以自动生成Pipeline语法

点击【流水线语法】进入新页面

docker 搭建jenkins,笔记总结,docker,jenkins,容器

选择想要生成的流水线脚本,填写对应配置然后生成

docker 搭建jenkins,笔记总结,docker,jenkins,容器

Git拉取代码流水线语句:

docker 搭建jenkins,笔记总结,docker,jenkins,容器

连接服务器执行语句:

docker 搭建jenkins,笔记总结,docker,jenkins,容器

最终的流水线脚本:

pipeline {
    agent any

    tools {
        maven "maven3.9.3"
        jdk "jdk1.8"
    }

    stages {
        stage('拉取代码') {
            steps {
                git credentialsId: '4ef30b0b-a335-4a6e-bfbe-151d59676f44', url: 'http://42.236.74.152:8050/fumingxing/cmcc-tenant.git'
            }
        }
	stage('编译打包') {
            steps {
                sh '''echo "开始构建"
                mvn clean install -Dmaven.test.skip=true
                echo "构建结束"'''
            }
        }
        
        stage("服务传输、启动"){
             steps {
               sshPublisher(publishers: [sshPublisherDesc(configName: 'mySSH', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#第一步是进入到服务器中生成好的jar包的目录下
cd /var/jenkins_home/workspace/mytest/ruoyi-admin/target

#第二步是根据jar包的名字获取运行的pid,并且将该进程杀死
ps -ef | grep ruoyi-admin.jar   |   grep -v   grep   |   awk \'{printf $2}\'  |  xargs kill -9

#最后一步就是将这个jar后台启动了,并且将日志输出到out.log中。
nohup java -Xms128m -Xmx128m -Xss1024k -XX:MaxNewSize=64M -XX:MaxPermSize=64M -jar ruoyi-admin.jar >out.log 2>&1 &''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: 'ruoyi-admin/target', sourceFiles: 'ruoyi-admin/target/ruoyi-admin.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
    
}

docker 搭建jenkins,笔记总结,docker,jenkins,容器

docker 搭建jenkins,笔记总结,docker,jenkins,容器文章来源地址https://www.toymoban.com/news/detail-713642.html

到了这里,关于使用Docker安装部署Jenkins的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • BladeX框架开源-工作-笔记-Docker部署-Jenkins配置

    SpringBlade 是由一个商业级项目升级优化而来的SpringCloud微服务架构,采用Java8 API重构了业务代码,完全遵循阿里巴巴编码规范。 SpringBlade 采用Spring Boot 2.7 、Spring Cloud 2021 、Mybatis 等核心技术,同时提供基于React和Vue的两个前端框架用于快速搭建企业级的微服务系统平台 Spring

    2024年02月13日
    浏览(32)
  • 基于Docker+Jenkins+Gitl搭建持续集成环境(部分关键笔记)

    Jenkins 访问地址: ip地址:10000 查看密码 问题 jenkins升级问题 jenkins时区设置问题 配置插件更新代理 安装WebHooks并启用 配置Jenkins参数 解决jenkins安装插件报错: An error occurred during installation: No such plugin: cloudbees-folder Index of /jenkins/plugins/skip-certificate-check/latest/ | 清华大学开源软件

    2024年02月10日
    浏览(32)
  • docker部署jenkins且jenkins中使用docker去部署项目

    2.346.1是最后一个支持jdk8的 在这个目录中新增data文件夹,注意data是用来跟docker中的文件进行映射的 docker-compose.yml docker-compose up -d 安装插件,如果插件失败,在这里面去修改 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json jdk地址: https://repo.huaweicloud.com/java/jdk/8u202-b

    2024年02月13日
    浏览(32)
  • 一文搞懂jenkins安装部署(Docker)

    一、简介: 本文主要记录如何通过docker安装jenkins,并通过jenkins部署项目,最终效果:在jenkins对某个项目点击构建,jenkins就会去gitLab上拉取最新项目的最新代码,然后根据pom.xml文件,把项目打包成jar,并自动把这个最新的jar运行起来,达到一键式构建的目标。 二、操作步骤

    2023年04月25日
    浏览(30)
  • Docker-Jenkins|安装部署全流程

    什么是Jenkins ?   Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成( CI/CD)。 软件项目CI/CD是什么 ?   CI(Continuous Integration)始终指持续集成 ,CD(Continuous

    2024年02月03日
    浏览(36)
  • Docker 安装 Jenkins 并部署 Maven 项目

    在开始之前,我们需要保证系统中已经安装了Docker、JDK、Maven。 我这里使用的是 2.344 版本的 Jenkins,拉取命令如下: 需要稍微等一会,等待拉取完成。 镜像下载完成后,我们可以通过如下命令查看我们 docker 中的所有镜像。 这里可以看到我们刚才拉取的 2.344版本的 Jenkins 镜

    2024年02月13日
    浏览(40)
  • Jenkins+GitLab+Docker搭建前端自动化构建镜像容器部署(无本地证书,映射证书)

    前言 🚀 需提前安装环境及知识点: 1、Docker搭建及基础操作 2、DockerFile文件描述 3、Jenkins搭建及基础点 🚀 目的: 将我们的前端项目打包成一个镜像容器并自动发布部署,可供随时pull访问 1、在当前项目的根目录创建Dockerfile文件并写入如下代码: 代码片段详细描述: 注意

    2024年02月15日
    浏览(40)
  • 使用docker搭建Jenkins

    enkins是一个开源的自动化服务器工具,最初是为软件开发领域设计的。它是一个基于Java的Web应用程序,用于管理和持续集成软件开发过程中的各种任务。 Jenkins的主要功能是帮助开发团队自动化构建、测试和部署软件项目。它可以集成各种版本控制系统,如Git、Subversion等,并

    2024年01月18日
    浏览(29)
  • 使用Docker部署Jenkins

    Jenkins是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。 接下来使用Docker部署Jenkins: 拉取Jenkins镜像 创建 Jenkins 工作目录,将容器内目录挂载到此目录上 启动容器 查看容器状态 查看容器日志 将映射到主机的端口添加到防火墙 ur

    2024年02月06日
    浏览(41)
  • Docker使用Jenkins部署项目

    Docker安装及配置移步Docker安装及配置 目录 1.拉取Jenkin镜像 2.运行启动Jenkins 3.访问Jenkins 4.配置Jenkins 插件下载  配置 5.配置Git仓库拉代码构建 6.测试构建   可通过以下命令查看镜像 记得在防火墙开启对应端口 说明: 命令         作用 -d  容器后台运行 --name jenkins 容器名

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包