Springboot Gitlab Jenkins Maven Docker 持续集成/持续交付

来源:互联网 发布:知乎装修精华帖 编辑:程序博客网 时间:2024/06/05 07:08

Gilab安装教程

http://blog.csdn.net/chenhaifeng2016/article/details/78603216

http://blog.csdn.net/chenhaifeng2016/article/details/78603932


Jenkin安装教程

http://blog.csdn.net/chenhaifeng2016/article/details/78626727


Maven安装教程和Gradle安装教程

http://blog.csdn.net/chenhaifeng2016/article/details/61202846


Docker私有Registry安装教程

http://blog.csdn.net/chenhaifeng2016/article/details/78177159

制作基础镜像

http://blog.csdn.net/chenhaifeng2016/article/details/78631215


配置Jenkins的JDK和Maven

在Jenkins中安装相关插件:Git, Gitlab Auth, Gilab Hook, Gitlab

在Jenkins中配置Git plugin

在Jenkins中配置Gitlab plugin


GitLab API Token来自于


最后测试一下Jenkins是否可以连接GitLab。

点击按钮Test Connection返回success显示成功。



在Jenkins服务器生成密钥对ssh-keygen

在Gitlab创建项目springbootdemo

配置项目的部署密钥

在Jenkins中新建一个项目springbootdemo,建议项目名称和gitlab中的项目名称保持一致。项目类型为构建一个自由风格的软件项目。

在Jenkins中配置项目的源代码管理

在Jenkins中配置项目的构建触发器

在Jenkin中配置项目的构建动作,这里暂时输出"maven ..."

在gitlab中配置项目的webhook

模拟测试一下Push events

测试成功


在IntelliJ IDEA修改代码做一次提交,webhook会自动触发构建。


接下来配置项目自动生成docker镜像并上传企业内部私有仓库。

在Jenkins中配置项目的构建,这里添加两个步骤。



dockerfile的内容

FROM repo.cssweb.com:5000/chenhf/jdk8MAINTAINER chenhf "chenhf2010@qq.com"RUN mkdir -p /usr/local/src/springbootappADD target/springbootdemo-0.0.1-SNAPSHOT.jar /usr/local/src/springbootappENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/usr/local/src/springbootapp/springbootdemo-0.0.1-SNAPSHOT.jar"]

通常情况下,会在项目中添加一个目录docker, 并在下面创建dockerfile文件。

另外,maven工程可以借助于docker-maven-plugin插件来生成镜像并上传镜像仓库。

这里只是出于演示的目的。

shell脚本的内容

#!/bin/bashif docker images | grep repo.cssweb.com:5000/chenhf/springbootdemothen    docker rmi repo.cssweb.com:5000/chenhf/springbootdemo    echo "docker rmi repo.cssweb.com:5000/chenhf/springbootdemo"fidocker build -t repo.cssweb.com:5000/chenhf/springbootdemo .docker push repo.cssweb.com:5000/chenhf/springbootdemoif docker ps -a | grep -i springbootdemo then    docker rm -f springbootdemo    echo "docker rm -f springbootdemo"fidocker run -d -p 9000:8080 --name springbootdemo repo.cssweb.com:5000/chenhf/springbootdemo

这里只是出于演示的需要,在本地运行了容器。实际情况下, 需要通过docker compose,kubernetes等工具来部署容器。


接下来在项目开发工具IntelliJ IDEA中做一次提交, Jenkins会自动构建项目、生成镜像、上传镜像并运行容器。


下次讲一下如何通过pipeline来持续集成和交付项目。


maven docker plugin

https://github.com/spotify/docker-maven-plugin

https://github.com/spotify/dockerfile-maven