当前位置:首页 > 单片机 > 架构师社区
[导读]前言Docker和SpringBoot是非常流行的组合,我们将利用GitLabCI的优势,并在应用程序服务器上自动构建,推送和运行Docker镜像。GitLabCIGitlabCI/CD服务是GitLab的一部分,每当开发人员将代码推送到GitLab存储库时,它都会在所需的环境中...



还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!


前言

Docker和Spring Boot是非常流行的组合,我们将利用GitLab CI的优势,并在应用程序服务器上自动构建,推送和运行Docker镜像。

GitLab CI

Gitlab CI/CD服务是GitLab的一部分,每当开发人员将代码推送到GitLab存储库时,它都会在所需的环境中构建,测试和存储最新的更改。

选择GitLab CI的一些主要原因:

  1. 易于学习,使用和可扩展
  2. 维护容易
  3. 整合容易
  4. CI完全属于GitLab存储库的一部分
  5. 良好的Docker集成
  6. 镜像托管(Container registry)-基本上是你自己的私有Docker Hub
  7. 从成本上来说,GitLab CI是一个很好的解决方案。每个月你有2000分钟的免费构建时间,对于某些项目来说,这是绰绰有余的

为什么GitLab CI超越Jenkins

这无疑是一个广泛讨论的话题,但是在本文中,我们将不深入探讨该话题。GitLab CI和Jenkins都有优点和缺点,它们都是功能非常强大的工具。

那为什么选择GitLab?

如前所述,CI完全是GitLab存储库的一部分,这意味着不需要安装它,并且维护最少。yml脚本完成后,你便或多或少地完成了所有工作。

对于小型项目使用Jenkins,你就必须自己设置和配置所有内容。通常,你还需要一台专用的Jenkins服务器,这也需要额外的成本和维护。

使用GitLab CI 前提条件

如果需要与这些前提条件有关的任何帮助,我已提供相应指南的链接。

  1. 你已经在GitLab上推送了Spring Boot项目
  2. 你已在应用程序服务器上安装了Docker(指南)
  3. 你具有Docker镜像的镜像托管(在本指南中将使用Docker Hub)
  4. 你已经在服务器上生成了SSH RSA密钥(指南)

你要创建什么

你将创建Dockerfile.gitlab-ci.yml,它们将自动用于:

  1. 构建应用程序Jar文件
  2. 构建Docker镜像
  3. 将镜像推送到Docker存储库
  4. 在应用程序服务器上运行镜像

基本项目信息

本文的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 
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭