4.Devops实战篇之——实现基础CI操作

目录

1.创建项目

2.Gitlab仓库配置

3.Jenkins拉取代码

4.Jenkins拉取代码后构建

5.Jenkins推送jar包到目标服务器并运行


1.创建项目

#可以自己找项目进行改动,也可以自建简单项目测试

#这里需要先安装java,可以参考这位博主的文章来安装Java 安装和环境配置_java安装与配置-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_47076538/article/details/128940479?ops_request_misc=%7B%22request_id%22%3A%22171518493116800222851971%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=171518493116800222851971&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-5-128940479-null-null.142%5Ev100%5Econtrol&utm_term=java%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83&spm=1018.2226.3001.4187 #我们在IntelliJ IDEA 2024.1.1构建一个最简单的spring boot项目进行CI测试

#新建——spring boot —— maven ——web—— spring web

package com.yyw.test.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/test")
    public String test() {
        return "hello";
    }
}

#调试之前记得把maven的路径设置一下自带的maven路径

#写好后运行一下,检查没问题。

2.Gitlab仓库配置

#创建新project

#在IDEA自报家门

#之后就可以按照下面的方式把代码上传到git

#我这里使用IDEA的方式(创建git仓库)

#对整个项目进行commit

#获取gitlab仓库地址

#推送

#推送代码成功(开发端——gitlab实现完成)

3.Jenkins拉取代码

#创建任务(自由风格),绑定gitlab仓库(因为是公共仓库,push才需要用户名密码,而pull不需要)

#任务指定了源代码的位置,只要进行构建,就会从git仓库拉取到jenkins的本地。

#确认源码放在本地

[root@k8smaster jenkins_docker]# docker exec -it jenkins bash
jenkins@abbed0c24148:~/workspace$ pwd
/var/jenkins_home/workspace
jenkins@abbed0c24148:~/workspace$ ls mytest/
web  web3.iml
jenkins@abbed0c24148:~/workspace$

4.Jenkins拉取代码后构建

#Jenkins任务——配置——Build Steps

#jenkins调用maven进行构建操作

#clean package -DskipTests

#失败就查看日志排查原因(linux-jdk版本过低会导致构建失败,这里我是从前期的8改为了22)

#jenkins拉取的代码会放在workspace里面,打包好的会放在workspace/target里面
#检查是否构建成功,出现target
jenkins@6e97332367d1:~$ pwd
/var/jenkins_home
jenkins@6e97332367d1:~$ ls workspace/test1/
mvnw  mvnw.cmd	pom.xml  src  target

5.Jenkins推送jar包到目标服务器并运行

#构建后操作,指定jenkins推送包并发送指令使用docker运行

#Send build artifacts over SSH

#接下来构建,目的是要目标服务器能接收到打包好的jar包

#到node1发现包已经传过来了

[root@k8snode1 test]# pwd
/usr/local/test
[root@k8snode1 test]# ls
target
[root@k8snode1 test]# ls target/
test1-0.0.1-SNAPSHOT.jar

#推送测试ok,接下来要让目标服务器运行了

#想要以docker方式运行的话,首先需要把包做成一个自定义的镜像

#可以在dockerhub上找基础镜像

#最后打包好的名字为mytest1.jar

#编写Dockerfile

FROM openjdk:22-jdk
COPY mytest1.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest1.jar

#有了自定义镜像,还需要管理镜像。(docker-compose)

version: '3.1'
services:
  mytest1:
    build:
      context: ./
      dockerfile: Dockerfile
    image: mytest1:v1.0.0
    container_name: mytest1
    ports:
      - 8081:8080

#写好后全部推送到git仓库

#jenkins不仅仅要传jar包,还需要把dockerfile和docker-compose.yml文件一并传过去

#因为上面设置了ssh server的工作目录是/usr/local/test,所以直接进入文件夹执行命令

cd /usr/local/test/docker
mv ../target/*.jar ./    
docker compose down
docker compose up -d --build
docker image prune -f

#构建好以后可以在目标服务器看到运行中的pod

[root@k8snode1 docker]# docker ps -a | grep my
662f093eaa6c   mytest1:v1.0.0                                        "/bin/sh -c 'java -j…"   5 minutes ago   Up 5 minutes              0.0.0.0:8081->8080/tcp   mytest1

#访问   http://目标服务器ip:8081/test1

#往后代码的更新可以由IDEA处上传到gitlab,再由Jenkins拉取代码后构建,发布。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Doublew_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值