Jenkins

四 Jenkins

4.1 gitblit私服 搭建

我们git远程仓库:  github国外的  gitee国内   gitlab/gitblit私服 局域网

将  gitblit-1.8.0.zip  到指定路径
创建一个gitblit的仓库: 创建一个文件夹
打开配置:D:\workapp\gitblit-1.8.0\data\defaults.properties
修改第31行 刚才创建的文件夹目录
git.repositoriesFolder = D:/workapp/gitblit-1.8.0/cangku
修改1993行的端口号
server.httpPort = 12580
修改2020行的ip地址为自己电脑ip
server.httpBindInterface = 172.16.22.206
修改2029行的https地址为localhost
server.httpsBindInterface = localhost
 保存,关闭文件。
    
此时我们的私服搭建成功
启动私服
直接双击 D:\workapp\gitblit-1.8.0\gitblit.cmd
访问:  172.16.22.206:12580
先登录  admin  admin

找到版本库 创建版本库
将我们的项目和远程仓库进行关联
找到我们项目文件夹 进入,右键 git  bash  here

Administrator@ITCat MINGW64 /e/javacode/dockerimagetest
$ git  init
Initialized empty Git repository in E:/javacode/dockerimagetest/.git/

Administrator@ITCat MINGW64 /e/javacode/dockerimagetest (master)
$ git  remote   add origin  http://admin@192.168.10.171:12580/r/dockerimagetest.git

Administrator@ITCat MINGW64 /e/javacode/dockerimagetest (master)
$ git  pull  origin  master
remote: Counting objects: 4, done
remote: Finding sources: 100% (4/4)
remote: Getting sizes: 100% (3/3)
remote: Compressing objects: 100% (295/295)
remote: Total 4 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (4/4), 408 bytes | 17.00 KiB/s, done.
From http://192.168.10.171:12580/r/dockerimagetest
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master

修改排除文件 .gitgnore

4.2 服务器准备

1 克隆服务器  已经有  jdk    docker
2 修改ip地址等
3 下载安装git   yum -y install git
4 安装maven    
创建maven mkdir  /home/maven
移动到maven文集ANJIA    cd   /home/maven
执行下载命令
wget https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
解压压缩包
tar  -zxvf  apache-maven-3.3.9-bin.tar.gz
配置环境变量  vim  /etc/profile
    
MAVEN_HOME=/home/maven/apache-maven-3.5.4
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME  CLASSPATH  PATH MAVEN_HOME

刷新环境变量 : source /etc/profile
测试是否安装成功: mvn  -v

5 启动docker  service  docker  start

4.3 docker的maven插件

在项目的pom文件中添加 插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <!--docker镜像相关的配置信息-->
                <configuration>
                    <!--镜像名,这里用工程名-->
                    <imageName>${project.artifactId}</imageName>
                    <!--dockerfile目录-->
                    <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
                    <!--TAG,这里用工程版本号-->
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <!--镜像的FROM,使用java官方镜像-->
                    <baseImage>java:8</baseImage>
                    <!--该镜像的容器启动后,直接运行spring boot工程-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <!--构建镜像的配置信息-->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

在 src/main/resources 添加Dockerfile文件

FROM        java:8
VOLUME      /tmp
ADD         qy123-1.0.jar   web.jar
RUN         sh   -c  'touch   /web.jar'
ENV         JAVA_OPTS=""
ENTRYPOINT  [ "sh" ,  "-c"  , "java  $JAVA_OPTS  -jar  /web.jar" ]

4.4 手动构建流程

1 写完代码  将代码推送到远程仓库
2 在服务器 创建一个文件夹   
  cd  /home 
  mkdir  aaa
  cd   aaa
  git  init 
  git  remote   add origin  http://admin@192.168.10.171:12580/r/dockerimagetest.git
  git  pull origin master 
  
 此时项目就拉取到我们的aaa文件夹中

3 使用maven进行打包编译成docker镜像
  mvn -f pom.xml clean package -DskipTests docker:build
4 docker 运行当先镜像
  docker run  --name demo  -d -p 8090:8080  dockerimagetest:1.0
      
此时我们代码又更新了 ,此时需要重新推送到远程仓库      
1  git 拉取新代码
   git  pull  origin  master
2   docker 操作
   docker  stop  demo  停止之前的容器
   docker rm  demo     删除运行容器
   docker  rmi -f  dockerimagetest:1.0   删除镜像
3  maven 重新构建       
   mvn -f pom.xml clean package -DskipTests docker:build   
4 docker 运行当先镜像
  docker run  --name demo  -d -p 8090:8080  dockerimagetest:1.0
      
后面版本再次更新 还是这 1234 顺序执行即可      
      

4.5 Jenkins安装与配置

Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。



第一次使用 Jenkins,您需要:

下载并运行 Jenkins

    下载 Jenkins.

    打开终端进入到下载目录.

    运行命令 java -jar jenkins.war --httpPort=8080.

    打开浏览器进入链接 http://localhost:8080.

    按照说明完成安装.

安装完成后,您可以开始使用 Jenkins!

    
 第一次访问的时候 需要查看密码

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

6fa4fa7cf6f1410691ee228ba8575ac1

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

进入界面 选择 安装推荐的插件
配置管理员账号

进入主界面 选择 manage jenkins 选择 Global Tool Configuration
    配置JDK 和  Maven

4.6 使用jenkins完成自动化构建

在主界面 点击  新的Item  起名字 选择 freestyle project 点击确定

    
源码管理 选择git  填写URL 和 设定账号密码
http://172.16.22.206:12580/r/qy123.git   

选择构建
    添加构建步骤
    执行shell 
    
#!/bin/bash
 
#查看当前测试项目的docker容器是否正在执行
a=$(docker ps | grep demo)
if [[   "$a" != ""   ]]
then 
echo "停止运行"
docker stop demo
fi

b=$(docker ps -a | grep demo)
if [[     "$b" != ""     ]]
then
echo  "删除 容器"
docker  rm  demo
fi

c=$(docker images | grep dockerimagetest  )
if [[  "$c" != ""  ]]
then
echo "删除镜像"
docker  rmi -f dockerimagetest:latest
docker  rmi -f dockerimagetest:1.0
fi

增加构建步骤 maven
     版本选择 我们自己配置的maven
     目标   -f pom.xml clean package -DskipTests docker:build


增加构建步骤 执行shell

docker run --name xxx -d -p 7788:7788  jdemo:1.0
    
点击保存

测试是否 ok  
  假如程序员又重新提交了新代码








4.7 全自动化构建

1 选中我们的项目 点击配置  构建触发器 勾选第一个
  填写身份令牌
    此时我们就可以通过       配置的时候 只写令牌  
    但是地址狗子调用的地址是这个样子
    http://192.168.239.110:8080/job/ZIDONGGOUJIAN/build?token=aaa
   远程调用
   点击保存
2 找到Security 配置Configure Global Security
   授权策略
       选择项目矩阵授权
   点击保存

3 安装插件  Authorize Project Plugin
4 再次进行全局安全配置
    
5 配置gitblit 到安装路径下的 D:\workapp\gitblit-1.8.0\data\groovy
  下有一个 jenkins.groovy 文件 作用就是触发jenkins
     将其打开  修改
    
import com.gitblit.GitBlit
import com.gitblit.Keys
import com.gitblit.models.RepositoryModel
import com.gitblit.models.UserModel
import com.gitblit.utils.JGitUtils
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.slf4j.Logger


logger.info("jenkins hook triggered by ${user.username} for ${repository.name}")

new URL("http://192.168.239.140:8080/jenkins/job/buildQY123/build?token=aaa").getContent()

    重启 gitblit
进入到项目gitblit 点击编辑 选择-> Receive 设置
    
post-receive 脚本
Post-receive hooks 会在推送接收后, refs 更新之后执行。
这种hook是进行通知,使用构建触发器等的好工具。

将 jenkins选中  移动到 右边 保存



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TInOq3sh-1666359039140)(DevOps.assets/1666341100664.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rxI0f5T-1666359039141)(DevOps.assets/1666341449518.png)]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值