欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos
内容:所有原创文章分类和汇总 , 及配套源码 , 涉及JAVA、Docker、Kubernetes、DevOPS等;
关于GitLab CI在《体验SpringBoot(2.3)应用制作Docker镜像(官方方案)》一文中 , 咱们掌握了SpringBoot官方推荐的镜像构建方案 , 接下来要体验的是GitLab的CI能力 , 它负责把代码变成私有仓库中的镜像 , 咱们可以专心编码了;
GitLab CI的作用如下图 , 开发者提交代码到GitLab后 , 就会触发编译、构建、制作镜像、推送到仓库这些事情 , 然后K8S环境就能用上最新的镜像了:
文章插图
本文内容【GitLab CI构建SpringBoot-2.3应用】本文继续坚持实战的风格 , 和大家一起完成以下操作:
- 准备一个SpringBoot-2.3应用;
- 编写GitLab的pipeline脚本;
- 提交代码触发pipeline脚本的工作;
- K8S环境使用最新镜像;
- 体验GitLab如何将最新镜像自动部署到K8S环境;
- GitLab:Community Edition 13.0.6
- GilLab Runner:13.1.0
- kubernetes:1.15.3
- SpringBoot:2.3.0.RELEASE
- JDK:1.8.0_121
- Maven:3.3.9
- Docker:19.03.8
- 操作系统:centos linux release 7.8.2003
- GitLab , 参考《群晖DS218+部署GitLab》
- 私有镜像仓库 , 参考《群晖DS218+部署Harbor(1.10.3)》
- GitLab Runner , 参考《GitLab Runner部署(kubernetes环境)》
- Kubernetes
https://github.com/zq2599/blog_demos):
文章插图
这个git项目中有多个文件夹 , 本章的应用在dockerlayerdemo文件夹下 , 如下图红框所示:
文章插图
实战操作
- 创建名为dockerlayerdemo的SpringBoot项目 , SpringBoot版本号为2.3.0.RELEASE , pom.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.bolingcavalry</groupId> <artifactId>dockerlayerdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>dockerlayerdemo</name> <description>Demo project for Spring Boot layer docker image</description> <properties><java.version>1.8</java.version> </properties> <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency> </dependencies> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.0.RELEASE</version><configuration><layers><enabled>true</enabled></layers></configuration></plugin></plugins> </build></project>
- java代码并非重点 , 在Application类中加了个http接口:
package com.bolingcavalry.dockerlayerdemo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.Date;@SpringBootApplication@RestControllerpublic class DockerlayerdemoApplication { public static void main(String[] args) {SpringApplication.run(DockerlayerdemoApplication.class, args); } @RequestMapping(value = https://www.isolves.com/sh/kj/2020-06-26/"/hello") public String hello(){return "hello " + new Date(); }}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 手把手教你搭建自己的GitLab库
- 使用Python自定义构建交互式SSH应用程序
- 用Python和OpenCV构建属于自己的图像搜索引擎
- 在Kubernetes上构建和部署Java Spring Boot微服务
- 王旭 崔辰娟谈茶行业营销构建网站准备工作
- 使用python构建递归算法,实现查找电脑中的所有文件
- 用Python构建深度学习应用
- 如何使用CSS蒙版构建一个动画的表情
- 详解Spring MVC 构建入门级 Web 应用程序
- 如何一步步构建大型网站架构