CI/CD

1、CI/CD应用场景

  • 开发人员将本地代码上传到gitlab版本服务器;
  • jenkins通过webhook插件自动到gitlab服务器拉去最新代码;
  • 通过docker-maven-plugin插件自动编译代码
  • 将自定义镜像上传docker私服仓库
  • k8s集群自动拉取最新版本镜像
  • 自动化部署整个项目
  • 通过nginx负载均衡访问整个项目

2、持续集成CI(Continuous intergration)

持续集成是一种将集成阶段置于开发周期中较早的做法,因此,构建,测试竭诚代码的时间安排更为规则。

 

 

3、持续交付(Continuous delivery)

 

 4、持续部署(Continuous  deployment)

5、DevOps概述

      Development和Operations的组合,可以促进开发人员和其他技术专业人员的协作。是在软件交付和部署过程中镜像通信和协作,目的更快,更可靠的发布质量更好的软件。

6、软件的生命周期

  •      需求分析
  •      设计
  •       实现
  •        测试
  •        运行及维护

7、制作一个新的开发包

安装idea,新建一个工程

 

 新建一个java class

package com.lagou.Jenkinsdemo.Jenkins;

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

@RestController
public class JenkinsTestController {

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

 

 

 启动后在本地测试:

 安装好maven

http://c.biancheng.net/maven2/install-configure.html

https://blog.csdn.net/m0_63324772/article/details/129464916

 https://blog.csdn.net/m0_63324772/article/details/129464916

打成jar包

 

 在本地运行jar包

 

 本地测试访问

 将打好的包上传到agent服务上

也可以在本地打包

C:\Users\Administrator\IdeaProjects\jenkinsdemo>mvn clean package -Dmaven.test.s
kip=true

 找打打好的jar包

 运行jar包

 idea中查看docker插件

 编辑dockerfile

FROM openjdk:8-alpine3.9

MAINTAINER zzs Docker spiringboot "hello@ll.com"

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk --update add curl bash tzdata && \
rm -rf /var/cache/apk/*

ENV TZ Asia/Shanghai
ARG JAR_FILE
COPY ${JAR_FILE} jenkinsdemo-0.0.1-SNAPSHOT.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/jenkinsdemo-0.0.1-SNAPSHOT.jar"]

镜像打包

[root@localhost data]# docker build --rm -t zzs/jenkinsdemo:v1 --build-arg JAR_FILE=jenkinsdemo-0.0.1-SNAPSHOT.jar .

 查看镜像

[root@localhost data]# docker images
REPOSITORY        TAG           IMAGE ID       CREATED             SIZE
zzs/jenkinsdemo   v1            453b87fd4b62   25 minutes ago      129MB

 启动测试镜像

[root@localhost data]# docker run -dit --name=jenkinsdemo -p 8080:8080 zzs/jenkinsdemo:v1

查看日志

[root@localhost data]# docker logs -f jenkinsdemo

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.12)

2023-06-23 11:22:21.397  INFO 1 --- [           main] com.lagou.JenkinsdemoApplication         : Starting JenkinsdemoApplication v0.0.1-SNAPSHOT using Java 1.8.0_212 on 4514041f8279 with PID 1 (/jenkinsdemo-0.0.1-SNAPSHOT.jar started by root in /)
2023-06-23 11:22:21.415  INFO 1 --- [           main] com.lagou.JenkinsdemoApplication         : No active profile set, falling back to 1 default profile: "default"
2023-06-23 11:22:27.327  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2023-06-23 11:22:27.384  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

测试

 

posted @ 2023-06-19 10:15  中仕  阅读(28)  评论(0)    收藏  举报