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

目录
  • 前言:
  • 一、安装Docker
  • 二、Docker 安装Jenkins
    • 1. 搜索仓库中的jenkins镜像
    • 2. 通过拉取jenkins镜像到本地images中
    • 3. 启动jenkins容器
  • 三、登陆Jenkins的初始化操作
  • 四、全局工具配置(配置环境)
  • 五、安装Maven插件 点击系统管理–插件管理
  • 六、新建任务,完成自动化部署

前言:

通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢!

Docker的优点:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
结构:客户端→Docker_Host(宿主机)→仓库
三个概念 容器→镜像→仓库

为什么使用Jenkins:

传统的部署项目,当项目完成后,需要我们自己从代码仓库中拉取代码到本地,完成打包,然后上传到服务器,然后配置项目的运行环境并启动。这样显然有一点的缺陷,我们在开发中存在的一些bug由于不能即时的发现,导致后期修复bug而存在导致连锁效应的风险。而且我们经常修改代码后,需要重新打包,然后上传到服务器,然后运行,当项目很多的时候,这样的一些重复性机械操作导致我们有些力不从心。
而我们使用Jenkins后真正的帮我们实现了自动化部署,当我们代码更新后,push到代码仓库中,我们只需在Jenkins的可视化界面点击构建项目,Jenkins便会根据我们配置的仓库地址自动拉取代码,自动打包,并运行,完成自动化部署。

一、安装Docker

Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker。

1. 通过 uname -r 命令查看你当前的内核版本

uname -r

2. 使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

3. 卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

4. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5. 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6. 可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7. 安装docker

sudo yum install -y docker-ce     #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1

8. 启动并加入开机启动

systemctl start docker     //启动docker
systemctl enable docker    //设置为开机启动

9. 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

二、Docker 安装Jenkins

1. 搜索仓库中的jenkins镜像

docker search jenkins

jenkins    表示你要搜索的镜像名,DESCRIPTION中包含jenkins的也会显示出来

2. 通过拉取jenkins镜像到本地images中

docker pull jenkins/jenkins

注意这里拉取的是jenkins/jenkins版本,因为先前的jenkins版本只有2.60,导致安装jenkins插件失败拉取的时候可以指定版本,例如docker pull java:8 表示拉取的java版本为8; 不指定版本则默认为最新版本 latest

3. 启动jenkins容器

docker run --name myjenkins -d -p 8081:8080 -p 8085:8085 jenkins/jenkins

–name myjenkins    指定容器NAME为myjenkins
-d    表示后台运行
-p 8081:8080    表示Docker Host(运行Docker的主机)端口 与Docker容器内运行的端口映射,
                            8081表示DockerHost的端口,8080即容器内的端口; 外部访问8081即可访问到Docker容器的8080端口
jenkins/jenkins    表示启动的镜像为jenkins/jenkins ,查看本地镜像可以通过docker images查看

说明:
    1.容器内的端口外部无法直接访问,因为要配置Docker Host与容器的端口映射,映射可以配置多个;
由于后面需要部署项目,提前把项目的端口号-p 8085:8085配置好,不配置的也可以,后面去修端口映射文件即可。
     2.其实我们也可以省略第二步pull操作,直接启动一个容器,Docker会先去本地images中查看是否有这个镜像,如果没有的话会去DockerHub仓库去下载。

三、登陆Jenkins的初始化操作

1. 访问jenkins界面,例如我虚拟机IP是192.168.199.188 ,输入192.168.199.188:8081,回车显示以下界面

进入安装Jenkins的容器内

docker exec -it myjenkins bash        // 进入指定容器,myjenkins表示我们启动容器时给容器指定的名称
cat /var/jenkins_home/secrets/initialAdminPassword`       //查看密码,复制密码粘贴到文本框内

操作图示:

2. 安装插件,这里就安装jenkins推荐的插件

点击安装推荐插件:

3. 自动安装中,需要稍等片刻,安装完成点击继续:

4. 创建管理员用户,也可以直接使用admin账户继续:

5. 实例配置 直接保存完成:

6. 开始使用Jenkins:

7. 进入Jenkins主页:

四、全局工具配置(配置环境)

点击系统管理–全局工具配置

1. 配置JDK: 取消自动安装(一般容器内都安装好了JDK环境), 进入docker容器,使用echo $JAVA_HOME 获取jdk安装路径,将路径复制到JAVA_HOME文本框

2. 配置Maven: 指定name,自动安装,点击Save即可

五、安装Maven插件 点击系统管理–插件管理

六、新建任务,完成自动化部署

1. 回到首页,点New 任务,构建一个Maven项目

2. 点击确定,回到首页我们发现多了一个名为SpringBoot_AutoTest1的任务(上面的任务是以前的,不用理会)

3. 点击项目名SpringBoot_AutoTest1 --> 点击配置

3.1 源码管理(配置git仓库地址,Jenkins会从远程仓库拉取代码):

3.2 构建配置(Jenkin拉取代码后会自动执行打包命令):

3.3 配置shell脚本(Jenkins打包完成后,自动执行shell脚本启动项目,实现自动化部署),最后保存即可:

附shell脚本:

#!/bin/bash
# #!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...
# #!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。

#服务名称

SERVER_NAME=SpringBoot_AutotTest

#源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。
JAR_NAME=jekins-0.0.1-SNAPSHOT

#target打包生成jar包的目录

JAR_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target    # 以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录

#打包完成之后,把iar包移动到运行jar包的目录
JAR_WORK_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target

echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo"得到进程ID: $PID"
echo"结束进程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo"结束进程完成"

#复制jar包到执行目录_

echo" 复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo"复 制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar

#前台启动
#java -jar $JAR_NAME.jar

#后台启动
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

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

(0)

相关推荐

  • 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

    本来没想着要写这篇博客,但是在实操过程中,一个是被网络问题搞炸了心态(真心感觉网络能把人搞疯,别人下个包.下个镜像几秒钟搞定,我看着我的几KB小水管真是有苦说不出),另一个就是这里面坑还是有一些的,写出来也是为了让大家避免重复踩坑 几个注意点: 下方shell命令绝大部分都需要管理员权限,所以如果你使用的用户不是root,则都要加上sudo 对于较复杂的命令我都提供了注释版和无注释版,无注释版是为了让你复制起来方便 准备工作 CentOS 7.x Docker Jenkins 一份支持 dock

  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 yum list installed | grep docke 安装docker yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表 开放2375端口,开启远程访问 vim /usr/lib/systemd/system/docker.s

  • 从零搭建docker+jenkins+node.js自动化部署环境的方法

    本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker部分 1.1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口 1.2.docker架构 简单的说,docker就是一个轻量级的linux系统.Docker 容器通过 Docker 镜像来创建.

  • 基于Docker+Jenkins实现自动化部署的方法

    使用码云搭建Git代码存储仓库 https://gitee.com/login 使用码云创建私有私有git仓库 将本地springboot项目上传到git仓库中 基于Docker安装Jenkins环境 1.使用docker 安装jenkins docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 2.访问jenkins地址 8080 注意:第一次启动的时候正在加载j

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

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

  • Docker Gitlab+Jenkins+Harbor构建持久化平台操作

    CI/CD概述 CI工作流程设计 Git 代码版本管理系统 只能命令行去管理git Gitlab 基于git做了图形管理页面,企业使用gitlab做私有的代码管理仓库 Github 公共代码管理仓库 搭建gitlab 搭建gitlab先创建工作目录,因为有些数据需要持久化 [root@www ~]# mkdir -p /gitlab [root@www ~]# cd /gitlab/ docker run -d \ --name gitlab \ -p 8443:443 \ -p 9999:80

  • Java利用jenkins做项目的自动化部署

    最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 上面是我从百科上down下来的,老实说没看懂,这是个什么玩意啊?其实以我现在的理解和应用,最多的便是部署了,其他功能待研究╮(╯_╰)╭撸主目前在上海一个不知名国企打工,我们现在项目的发布流程

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

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

  • Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤

    环境说明 腾讯云轻量服务器, 配置 1c 2g 6mb ,系统是 ubuntu 20.14,Docker 和 Jenkins 都在这台服务器上面, 群晖218+一台,Gogs 在这台服务器上. Docker安装 卸载旧的 Docker sudo apt-get remove docker docker-engine docker.io containerd runc 更新 apt 包索引并安装包以允许 apt 通过 HTTPS 使用存储库 sudo apt-get update sudo apt

  • 基于Docker、Nginx和Jenkins实现前端自动化部署

    目录 前期准备 部署目标 Dcoker环境的搭建 连接云服务器 安装Docker环境 Docker安装Docker Compose Docker安装Nginx和Jenkins服务 安装Nginx和Jenkins Nginx和Jenkins目录编写 docker-compose.yml文件配置 nginx.conf文件配置 安装Jenkins插件 关联Jenkins和GitLab 生成密钥 新建项目 源码管理 构建触发器 结束语 前期准备 基于CentOS 7系统云服务器一台. 基于Vue-CLI

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

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

  • .Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法

    前言 本文主要介绍了关于.Net Core自动化部署用docker版jenkins部署dotnetcore应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的实现步骤吧. 安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Container Dockerfile FROM jenkins/jenkins # Switch to root t

随机推荐