1、创建可运行SpringBoot项目

1.1、创建一个新工程

在idea里创建一个项目,这里叫devops-test,如下图:

String Boot版本要选择2.x的,依赖直选中Spring Web选项即可:

修改pom.xml文件,在build标签中增加如下内容,目的是简化jar包名称。

<finalName>devops-test</finalName>

创建一个最简单的Controller

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

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping("/test")
    public String test() {
        return "Hello DevOps!";
    }
}

本地启动测试,访问 http://localhost:8080/test/test

出现以下结果证明项目创建完成。

1.2、配置DockerFile

1.2.1、新增Dockerfile文件

在SpringBoot项目下新建一个docker文件夹,再在docker文件夹下创建一个Dockerfile文件,

文件的内容如下:

FROM daocloud.io/library/java:8u40-jdk
COPY devops-test.jar /usr/local/
WORKDIR /usr/local
CMD java -jar devops-test.jar

其中FROM daocloud.io/library/java:8u40-jdk需要调整的话可以按以下步骤进行,如果不需要调整,直接进入1.2.2步骤。

找个国内镜像源,如:Hub · DaoCloud

搜索java

找到jdk8对应版本,我们这里选8u40-jdk,点击拉取复制

1.2.2、新增docker-compose.yml文件

再在docker文件夹下创建一个docker-compose.yml文件,

文件的内容如下:

version: '3.1'
services:
  devops-test:
    build:
      context: ./
      dockerfile: Dockerfile
    image: devops-test:v1.0.0
    container_name: devops-test
    ports:
      - 8081:8080

2、GitLab上传代码

在GitLab上创建一个裸库

把想买个名称填写进去,为了方便操作,这里我们选Public

在idea上传代码到仓库

写入仓库地址,并导入

3、在Jenkins上创建一个任务

点击新建任务->构建一个自由风格的软件项目

3.1、配置General

依次点击选择:General->参数化构建过程->Git 参数

勾选参数化构建过程,填上名称(branch)和描述,参数类型这里选择“分支”也可以选择“标签”,默认值根据实际分支填写,例如这里dev。

3.2、配置源码管理

添加源码管理

点击立即构建

可以看到相关的日志

3.3、配置Build Steps

3.2.1、配置切换分支Git脚本

在实际构建之前,需要切换到对应的分支或者标签,配置如下脚本

git checkout $branch

首先点击“增加构建步骤”,选择“执行 shell”选项。

3.3.2、配置maven打包脚本

首先点击“增加构建步骤”,选择“调用顶层Maven 目标”选项。

Maven版本选择之前配置的maven,目标写入打包命令:

clean package -DskipTests

3.4、配置构建后操作

在构建成功后,我们需要向目标服务器推送打包好的jar包和docker脚本文件。

首先点击“构建后操作”,选择“Send build artifacts over SSH”选项。

SSH Server:选择我们之前配置的目标服务器。

Transfer Set Source files:填写我们需要推送的文件,这里推jar包以及docker配置文件:

target/*.jar docker/*

Exec command: 配置如下内容

cd /usr/local/test/docker
mv ../target/*.jar ./
docker-compose down
docker-compose up -d --build
docker image prune -f

其中docker image prune -f命令是删除为空名的容器镜像,防止一直产生多余的容器镜像。

4、Jenkins构建项目

完成了以上所有的步骤后,直接点击Jenkins构建项目

开始构建后可查看对应的构建日志看是否构建异常。

构建完成之后,如果想看对应的jar包,可以进入Jenkins容器中查看

docker exec -it jenkins bash
cd ~
cd workspace/
ls

查看docker镜像

docker images

5、访问项目验证

打开浏览器,访问我们部署的项目,看到如下界面,证明完成了整个CI、CD的过程。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐