还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!
扫描二维码
随时随地手机看文章
前言
Docker和Spring Boot是非常流行的组合,我们将利用GitLab CI的优势,并在应用程序服务器上自动构建,推送和运行Docker镜像。GitLab CI
Gitlab CI/CD服务是GitLab的一部分,每当开发人员将代码推送到GitLab存储库时,它都会在所需的环境中构建,测试和存储最新的更改。选择GitLab CI的一些主要原因:- 易于学习,使用和可扩展
- 维护容易
- 整合容易
- CI完全属于GitLab存储库的一部分
- 良好的Docker集成
- 镜像托管(Container registry)-基本上是你自己的私有Docker Hub
- 从成本上来说,GitLab CI是一个很好的解决方案。每个月你有2000分钟的免费构建时间,对于某些项目来说,这是绰绰有余的
为什么GitLab CI超越Jenkins
这无疑是一个广泛讨论的话题,但是在本文中,我们将不深入探讨该话题。GitLab CI和Jenkins都有优点和缺点,它们都是功能非常强大的工具。那为什么选择GitLab?
如前所述,CI完全是GitLab存储库的一部分,这意味着不需要安装它,并且维护最少。yml脚本完成后,你便或多或少地完成了所有工作。对于小型项目使用Jenkins,你就必须自己设置和配置所有内容。通常,你还需要一台专用的Jenkins服务器,这也需要额外的成本和维护。使用GitLab CI 前提条件
如果需要与这些前提条件有关的任何帮助,我已提供相应指南的链接。- 你已经在GitLab上推送了Spring Boot项目
- 你已在应用程序服务器上安装了Docker(指南)
- 你具有Docker镜像的镜像托管(在本指南中将使用Docker Hub)
- 你已经在服务器上生成了SSH RSA密钥(指南)
你要创建什么
你将创建Dockerfile
和.gitlab-ci.yml
,它们将自动用于:- 构建应用程序Jar文件
- 构建Docker镜像
- 将镜像推送到Docker存储库
- 在应用程序服务器上运行镜像
基本项目信息
本文的Spring Boot应用程序是通过Spring Initializr生成的。这是一个基于Java 8或Java11构建的Maven项目。后面,我们将介绍Java 8和Java 11对Docker镜像有什么影响。Docker文件
让我们从Dockerfile开始。脚本已经准备好,如下:FROM maven:3.6.3-jdk-11-slim AS MAVEN_BUILD
#FROM maven:3.5.2-jdk-8-alpine AS MAVEN_BUILD FOR JAVA 8
ARG SPRING_ACTIVE_PROFILE
MAINTAINER Jasmin
COPY pom.xml /build/
COPY src /build/src/
WORKDIR /build/
RUN mvn clean install -Dspring.profiles.active=$SPRING_ACTIVE_PROFILE