[Docker implementa CI/CD de implementación de prueba ---- operación de CI de estilo libre [arquitectura intermedia] (4)]

10. Operación de CI de estilo libre (arquitectura intermedia)

Diagrama de arquitectura intermedia

Insertar descripción de la imagen aquí

Crear un proyecto web

        Para crear un proyecto web, utilice un spring bootproyecto simple, como el nombre del proyecto hellojks. Simplemente importe spring webdependencias.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

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

@RestController
public class HelloController {
    
    
    @GetMapping("/hello")
    public String helloHandle(){
    
    
        return "Hello Jenkins!!!!";
    }
}

Insertar descripción de la imagen aquí

Inicia la prueba y el acceso es exitoso.

Insertar descripción de la imagen aquí

Idea envía el proyecto al almacén remoto.

Cree un repositorio remoto en gitlab para administrar el proyecto web creado previamente

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Idea crea una biblioteca local

Insertar descripción de la imagen aquí

Terminal 窗口Cree un usuario global en         el proyecto siguiendo el comando en Git global stetup en la página del almacén remoto .

Insertar descripción de la imagen aquí

Enviar código a la biblioteca local

Haga clic derecho en el proyecto, seleccione Git -> Commit Directory.

Insertar descripción de la imagen aquí

        Aparecerá una Commit to masterventana . Seleccione los archivos para enviar y complete el registro de envío en el área de texto. Entonces Commit.

Insertar descripción de la imagen aquí

Luego verá una advertencia, que no afecta el envío, simplemente Commit Anywayhaga clic nuevamente.

Insertar descripción de la imagen aquí

Enviar código a la biblioteca remota

Primero, obtenga la dirección del almacén del almacén remoto. Seleccione la Clone with HTTPdirección copiada.

Insertar descripción de la imagen aquí

Luego haga clic derecho en el proyecto y seleccione Git -> Push.

Insertar descripción de la imagen aquí

Haga clic en la nueva ventana Define remotey pegue la dirección del almacén remoto copiada en la ventana emergente.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Después de Push, aparecerá GitLab la ventana de inicio de sesión para acceder
, ingrese el nombre de usuario rooty la contraseña como se muestra arriba.GitLab修改过的密码

Insertar descripción de la imagen aquí

Después de que el envío sea exitoso, verá un mensaje de éxito en la esquina inferior derecha de la idea.

Insertar descripción de la imagen aquí

En este momento, actualice la página de GitLab y podrá ver los proyectos enviados.
Insertar descripción de la imagen aquí

Extraer código de jenkins

Crear nueva tarea

Insertar descripción de la imagen aquí

jenkins integra gitlab

Insertar descripción de la imagen aquí

Para público GitLab 仓库,直接指定仓库地址,应用保存即可. Pero para private 仓库,则需要指定访问 GitLab 的用户名与密码. Haga clic en el botón Agregar para abrir la ventana a continuación.

Insertar descripción de la imagen aquí

        Después de completarlo 用户名与密码, "Agregar" puede regresar a la página anterior. En este momento, Credentials puede encontrar la información del usuario recién agregado en el cuadro desplegable y seleccionarla.

Insertar descripción de la imagen aquí

Construir ahora

Insertar descripción de la imagen aquí

Ver salida de la consola

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

        Lo anterior es la segunda compilación. En la primera compilación Jenkins执行 git init /var/jenkins_home/workspace/my_hellojks 命令se puede ver que Jenkins usa su contenedor /var/jenkins_home/workspace/my_hellojks 目录como el almacén local del proyecto, que es el directorio del volumen de datos. Ingrese el volumen de datos de jenkins y podrá ver que el proyecto ya existe.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Haga del proyecto un paquete jar

        En Jenkins, puede configurarlo, llamarlo localmente maven 的 mvn 命令y escribir el proyecto extraído en un paquete Jar.

Jenkins configura el comando mvn

Insertar descripción de la imagen aquí

        Después de hacer clic en Configurar, se abre la página de configuración. Luego haga clic Build Stepspara saltar a la siguiente ubicación.

Insertar descripción de la imagen aquí

Llame al objetivo de Maven de nivel superior y utilice el Maven previamente configurado para completar la tarea de empaquetado.

"clean package -DskipTests" es un comando de Maven para crear un proyecto Java y omitir las pruebas en ejecución.

Insertar descripción de la imagen aquí

reconstruir

Insertar descripción de la imagen aquí

construir con éxito

Insertar descripción de la imagen aquí

        Una vez que la compilación sea exitosa, ingrese al directorio del volumen de datos de jenkins /var/jenkins_home/workspace/my_hellojks y podrá ver que se ha agregado el directorio de destino () "target" 目录是 Maven 构建工具生成的默认目录,用于存放构建过程中生成的各种输出文件。. Abra el directorio de destino y podrá ver el paquete jar generado.
Insertar descripción de la imagen aquí

Inspección de calidad del código

        Utilice el proyecto my_hellojks en Jenkins SonarScanner para realizar una inspección de calidad de su código. Por lo tanto, es necesario configurarlo en este proyecto SonarScanner.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

        Ejecútelo nuevamente 立即构建. Después de que la compilación sea exitosa, actualice la página de SonarQube y verá que se ha agregado un nuevo proyecto.

Insertar descripción de la imagen aquí

Construido exitosamente, ver la página
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Jenkins envía el código al servidor de destino

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

        En la página de inicio de la tarea devuelta, ejecute nuevamente la compilación inmediata. Al mirar el registro, puede ver el registro de conexión al servidor de destino y envío de 1 archivo.

Insertar descripción de la imagen aquí

Verifique el servidor de destino y podrá ver que el paquete jar ha sido transferido.

Insertar descripción de la imagen aquí

Construya la imagen e inicie el contenedor.

        Al configurar los comandos relevantes para que se ejecuten en el servidor de destino en Jenkins, Jenkins ejecutará automáticamente los comandos configurados inmediatamente después de enviar el paquete jar al servidor de destino, compilará el paquete jar en un espejo e iniciará su contenedor correspondiente para iniciar el proyecto. correr.

DefinirDockerfile

        Para crear una imagen, es necesario definirla Dockerfile. Ahora cree uno nuevo en el proyecto Idea Directory, por ejemplo docker, y luego cree uno nuevo en él Dockerfile.

        La ejecución del terminal Idea mvn clean packagees un comando de Maven que se utiliza para limpiar el proyecto y realizar operaciones de compilación.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Contenido del archivo Dockerfile

FROM openjdk:8u102
LABEL auth="shengxia" email="[email protected]"
COPY hellojenkins-0.0.1-SNAPSHOT.jar /jenkins/hellojenkins.jar # 复制到目标服务器所在的目录
WORKDIR /jenkins
ENTRYPOINT ["java", "-jar", "hellojenkins.jar"]

definir componer.yml

        Cree uno nuevo en el nuevo directorio de ideas compose.ymlpara crear imágenes e iniciar contenedores.

Insertar descripción de la imagen aquí

services:
  hellojenkins:
    build: ./
    image: hellojenkins
    container_name: myhellojenkins
    ports:
      - 8080:8080

Empujar a GitLab

Insertar descripción de la imagen aquí

Reconfigurar las operaciones posteriores a la compilación

Insertar descripción de la imagen aquí

reconstruir

        En Jenkins, en la página de inicio de la tarea devuelta, ejecute nuevamente la compilación inmediata. Una vez que la compilación sea exitosa, verifique el directorio en el servidor de destino /jenkins y descubra docker 目录及其下的两个 docker 文件已经存在了que el paquete jar también está copiado.

Insertar descripción de la imagen aquí

        En las imágenes de la ventana acoplable en el servidor de destino, puede ver que hellojenkins 镜像se han generado.

Insertar descripción de la imagen aquí

En el servidor de destino docker ps, puede ver que el contenedor se ha iniciado.

Insertar descripción de la imagen aquí

Acceda a la aplicación en el servidor de destino en el navegador y ya estará accesible.

Insertar descripción de la imagen aquí

        Modifique el código en idea, luego envíelo a gitlab, haga clic en compilar y se podrá realizar la entrega.

Modificar código

package com.example.hellojenkins.controller;

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

@RestController
public class HelloController {
    
    
    @GetMapping("/hello")
    public String helloHandle(){
    
    
        return "Hello Jenkins. This is the second modified!!!!";
    }
}

Construir ahora
Insertar descripción de la imagen aquí

Controlar
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_52589631/article/details/132090046
Recomendado
Clasificación