使用docker搭建jenkins自动化工具的实现

目录
  • 一、jenkins
  • 二、基于docker 搭建 jenkins
  • 三、jenkins 自动发布 SpringBoot 镜像

一、jenkins

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

大家在工作中,应该都有使用过jenkins 自动化打包或发布,就比如我经常用到的就是将开发的项目自动化打包成docker镜像,实现一键打包,大大减少了我们的工作量,下面就一起学习下,jenkins 的安装与使用。

二、基于docker 搭建 jenkins

本篇使用dockerdocker-composejenkins进行搭建,所以在安装前要保证服务器上已经安装了dockerdocker-compose。如果是内网服务器,可以先关闭服务的防火墙,外网的话下面注意开放相应端口。

由于我们要在jenkins容器内部使用外部的docker命令,需要依赖libltdl.so.7包,所以首先安装这个 library:

yum install libltdl.so.7

安装完之后,我的位置在/usr/lib64/libltdl.so.7,最好确认下你的是不是这个位置。

下面创建jenkin数据存储的地址:

mkdir /jenkins/jenkins_home

编写docker-compose-jenkins.yaml 文件,写入一下内容:

version: '3.1'
services:
  jenkins:
    image: jenkins/jenkins:lts
    volumes:
      - /jenkins/jenkins_home/:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    ports:
      - "8010:8080"
    expose:
      - "8080"
      - "50000"
    privileged: true
    user: root
    restart: always
    container_name: jenkins
    environment:
      JAVA_OPTS: '-Djava.util.logging.config.file=/var/jenkins_home/log.properties'

要在 CentOS7 的容器中使用宿主机上的命令,需要在容器中使用 root 用户,也可以以 jenkins 用户运行,但是需要把容器内的 jenkins 用户加入到 docker 组中,通过 grep docker /etc/group 命令查看 docker 组的 GID

所以 user: root 表示在容器中以 root 用户运行。
/var/run/docker.sock:/var/run/docker.sock 表示 Docker 守护进程监听的 Unix 套接字。要在 Jenkins 容器中使用 docker 命令,则此选项是必需的。

下面启动jenkins镜像:

docker-compose -f docker-compose-jenkins.yaml up -d

下面就可以在浏览器访问了:http://192.168.216.140:8010

第一次使用 jenkins,需要解锁,密钥上面已经提示在什么位置了,由于我们将根目录已经映射到本机的/jenkins/jenkins_home/下,所以查看密钥:

cat /jenkins/jenkins_home/secrets/initialAdminPassword

将上面密钥填入,继续可以看到新手入门,如果你不了解,就先下载推荐的插件,如果了解件下载针对性的插件,这里先安装推荐的插件:

等待一会下载完成后,需要创建用户,也可以使用admin用户,这里创建一个新用户user,然后继续:

下面一般不修改,直接继续,然后开始使用,就来到jenkins的主页面了:

到这里jenkins就算安装好了,如果要构建项目的话,还需要安装maven插件,后面就可以构建maven项目了:

搜索Maven

然后等待一会下载完成。还需进行Maven的依赖下载:

直接新增一个maven,可以选择在线安装,也可以指定某个路径,这里直接从Apache进行安装:

下面就可以使用jenkins 实现SpringBoot项目的docker环境自动化打包和发布。

三、jenkins 自动发布 SpringBoot 镜像

首先我们需要创建一个Git仓库,也可以使用SVN,这里我在Gitee上新建了一个仓库,并放入了一个基本的SpringBoot项目:

Dockerfile 文件的内容:

FROM openjdk:8-jdk
COPY target/jenkins-demo-0.0.1-SNAPSHOT.jar /home/app/jenkins-demo.jar
ENV LANG=UTF-8
ENV TZ=Asia/Shanghai
WORKDIR  /home/app/
CMD java -jar /home/app/jenkins-demo.jar

测试接口:

下面在jenkin中创建项目:

由于上面下载了Maven的插件,这里我们可以直接选择Maven项目:

在General中,填写项目的描述,并使用参数化构建 ,将每次打包的镜像版本,传递进来:

参数命名为version,后面打包docker镜像时会使用到:

下面在源码管理中我们选择Git:

点击添加,输入git的用户名密码,ID可以为空,系统会自动生成一个唯一ID:

选择上面添加的用户和密码:

这里我就一个master分枝,这里填写master

在Build的地方,我们可以写上打包的命令,这里可以省略mvn

clean package

Post Steps中我们选择执行Shell的方式,可以写打包docker镜像的指令:

#!/bin/sh
docker stop jenkins-demo
docker rm jenkins-demo
docker build -t jenkins-demo:${version}  .
docker run -itd --name jenkins-demo  -p 8088:8080 jenkins-demo:${version}

点击下面的保存,再次回到主页,就会看到刚才添加的项目了:

下面构建该项目:

需要输入版本:

在左下角可以看到执行进度:

点进入也可以看到控制台的打印:

第一次比较慢,等待一会就可以发现,SpringBoot项目就已经启动在docker中启动起来了。

查看docker中的进程:

已经有我们打包的SpringBoot项目了,接口也可以正常访问:

修改下程序,重新发布:

重新构建:

构建完成后,再次访问测试接口:

到此这篇关于使用docker搭建jenkins自动化工具的实现的文章就介绍到这了,更多相关docker搭建jenkins自动化 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker环境搭建Jenkins在构建任务时控制台日志出现中文乱码的问题

    一.问题描述: 在Linux环境Centos操作系统下,通过Docker下载Jenkins镜像后创建了容器,并且通过服务器IP+端口访问Jenkins地址,进行相关的配置,然后创建任务job来构建跑java+selenium自动化测试脚本,目前构建Success,唯一不足之处是打印的日志出现就了乱码,如下图: (备注:执行机就是jenkins本身,同一台机器) 二.排查Jenkins设置 Jenkins系统设置查看全局属性中语言部分 2.Jenkins详细信息(浏览器Jenkins地址后面加上/

  • Docker搭建Jenkins并自动化打包部署项目的步骤

    Jenkins的安装及配置 Docker环境下的安装 下载Jenkins的Docker镜像: docker pull jenkins/jenkins:lts 在Docker容器中运行Jenkins: docker run -p 8080:8080 -p 50000:5000 --name jenkins \ -u root \ -v /mydata/jenkins_home:/var/jenkins_home \ -d jenkins/jenkins:lts 直接通过虚拟机ip+端口访问jks,

  • 使用Docker+jenkins+python3环境搭建超详细教程

    前言: 自动化写好后需要在服务器上每日定时运行遇到,这样的一个问题,Jenkins容器是在docker中安装的 ,然后从git上拉取代码 发现代码在jenkins容器的目录当中,运行的时候提示没有安装python环境还第三方库. 解决方法有3种: 第一种:启动jenkins容器时 将容器的目录挂载到宿主机目录上去执行(方法不能实现)Pass 第二种:在jenkins上创建本地节点,将代码拉取到本地 然后去运行本地项目(在本机上使用比较方便,但是局限性比较小) 第三种:重新封装jenkins镜像,

  • docker+gitlab+jenkins从零搭建自动化部署

    目录 前言: 一.安装Docker 二.Docker 安装Jenkins 1. 搜索仓库中的jenkins镜像 2. 通过拉取jenkins镜像到本地images中 3. 启动jenkins容器 三.登陆Jenkins的初始化操作 四.全局工具配置(配置环境) 五.安装Maven插件 点击系统管理–插件管理 六.新建任务,完成自动化部署 前言: 通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢! Docker的优点: Docker 让开

  • docker搭建jenkins+maven代码构建部署平台

    目录 Docker基本概念 Docker安装过程(Centos6.9) 升级内核 安装docker-io 基于Docker的jenkins安装 拉取应用 运行容器 跟踪应用log 关闭打开容器 tomcat账户配置 配置jenkins,构建部署war应用 配置JDK.Maven等参数 新建任务构建部署 通过ssh脚本部署maven项目到指定Tomcat中 配置Publish Over SSH插件 编写部署ssh脚本 项目构建配置 由于项目开发,经常需要在本地搭一些环境进行开发或测试,大家知道搭环

  • docker搭建jenkins服务的示例

    拉取镜像 root@EricZhou-MateBookProX: docker pull jenkins/jenkins:lts lts: Pulling from jenkins/jenkins 3192219afd04: Pull complete 17c160265e75: Pull complete cc4fe40d0e61: Pull complete 9d647f502a07: Extracting [===================================> ] 35

  • 使用docker搭建jenkins自动化工具的实现

    目录 一.jenkins 二.基于docker 搭建 jenkins 三.jenkins 自动发布 SpringBoot 镜像 一.jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成. 大家在工作中,应该都有使用过jenkins 自动化打包或发布,就比如我经常用到的就是将开发的项目自动化打包成docker镜像,实现一键打包,大大减少了我们的工作量,下面就一起学习下,jenkin

  • Linux环境下使用Docker搭建Jenkins容器的方法步骤

    目录 需要提前准备的条件 Step1:安装Jenkins镜像 Step2:docker启动Jenkins容器 Step3:访问Jenkins Step4:安装Jenkins插件 需要提前准备的条件 Maven环境 Docker环境 JDK环境(Centos8 自带JDK环境去除,重装的JDK) Step1:安装Jenkins镜像 用docker查询jenkins镜像 docker search jenkins 我们选择下载第二个,jenkins/jenkins,下载命令 docker pull

  • Jenkins+Docker+Gitee+SpringBoot自动化部署

    目录 1,搭建Jenkins平台 2,Jenkins平台配置 3,创建SpringBoot应用 4,Gitee配置 5,新建自动化部署任务 6,打包测试 当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比较麻烦.基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程. 1, 搭建J

  • 教你如何用Jenkins自动化部署项目(从零到搭建完成)

    最近在实习中接触了jenkins这个东西,所以花点时间了解了下.它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包.上传服务器.部署这一系列步骤,非常方便. 下面教程分为以下几个部分: 一.在你的本地电脑或者linux服务器上下载安装jenkins: jenkins下载地址:https://jenkins.io/  下载网站的war包版本就好了 下载完后把它部署到你的tomcat上运行:

  • 使用Jenkins自动化构建工具进行敏捷开发

    目录 一.序言 二.安装与使用 (一)安装 1.查看初始密码 2.修改默认工作空间 (二)使用 1.构建配置 2.添加项目 (三)免密登录 三.触发策略 (一)定时触发 (二)URL 触发 (三)钩子触发 附录.工具使用 1.语言设置 2.构建环境清单 3.环境配置 4.任务配置 一.序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面. 所谓自动化构建是按照一定的策略执行打包脚本

随机推荐