Tabla de contenido
- 10. Operación de CI de estilo libre (arquitectura intermedia)
-
- Diagrama de arquitectura intermedia
- Crear un proyecto web
- Idea envía el proyecto al almacén remoto.
- Enviar código a la biblioteca local
- Enviar código a la biblioteca remota
- Extraer código de jenkins
- Haga del proyecto un paquete jar
- Inspección de calidad del código
- Jenkins envía el código al servidor de destino
- Construya la imagen e inicie el contenedor.
10. Operación de CI de estilo libre (arquitectura intermedia)
Diagrama de arquitectura intermedia
Crear un proyecto web
Para crear un proyecto web, utilice un spring boot
proyecto simple, como el nombre del proyecto hellojks
. Simplemente importe spring web
dependencias.
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!!!!";
}
}
Inicia la prueba y el acceso es exitoso.
Idea envía el proyecto al almacén remoto.
Cree un repositorio remoto en gitlab para administrar el proyecto web creado previamente
Idea crea una biblioteca local
Terminal 窗口
Cree un usuario global en el proyecto siguiendo el comando en Git global stetup en la página del almacén remoto .
Enviar código a la biblioteca local
Haga clic derecho en el proyecto, seleccione Git -> Commit Directory
.
Aparecerá una Commit to master
ventana . Seleccione los archivos para enviar y complete el registro de envío en el área de texto. Entonces Commit
.
Luego verá una advertencia, que no afecta el envío, simplemente Commit Anyway
haga clic nuevamente.
Enviar código a la biblioteca remota
Primero, obtenga la dirección del almacén del almacén remoto. Seleccione la Clone with HTTP
dirección copiada.
Luego haga clic derecho en el proyecto y seleccione Git -> Push
.
Haga clic en la nueva ventana Define remote
y pegue la dirección del almacén remoto copiada en la ventana emergente.
Después de Push, aparecerá GitLab
la ventana de inicio de sesión para acceder
, ingrese el nombre de usuario root
y la contraseña como se muestra arriba.GitLab修改过的密码
Después de que el envío sea exitoso, verá un mensaje de éxito en la esquina inferior derecha de la idea.
En este momento, actualice la página de GitLab y podrá ver los proyectos enviados.
Extraer código de jenkins
Crear nueva tarea
jenkins integra gitlab
Para público GitLab 仓库,直接指定仓库地址,应用保存即可
. Pero para private 仓库,则需要指定访问 GitLab 的用户名与密码
. Haga clic en el botón Agregar para abrir la ventana a continuación.
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.
Construir ahora
Ver salida de la consola
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.
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
Después de hacer clic en Configurar, se abre la página de configuración. Luego haga clic Build Steps
para saltar a la siguiente ubicación.
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.
reconstruir
construir con éxito
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.
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
.
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.
Construido exitosamente, ver la página
Jenkins envía el código al servidor de destino
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.
Verifique el servidor de destino y podrá ver que el paquete jar ha sido transferido.
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 package
es un comando de Maven que se utiliza para limpiar el proyecto y realizar operaciones de compilación.
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.yml
para crear imágenes e iniciar contenedores.
services:
hellojenkins:
build: ./
image: hellojenkins
container_name: myhellojenkins
ports:
- 8080:8080
Empujar a GitLab
Reconfigurar las operaciones posteriores a la compilación
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.
En las imágenes de la ventana acoplable en el servidor de destino, puede ver que hellojenkins 镜像
se han generado.
En el servidor de destino docker ps
, puede ver que el contenedor se ha iniciado.
Acceda a la aplicación en el servidor de destino en el navegador y ya estará accesible.
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
Controlar