Jenkins+Maven+Gitee+Docker+Springboot DevOps持续集成部署

1.首先安装Docker

Docker可以运行MAC、Windows、Centos、DEBIAN、UBUNTU等操作系统上,提供社区版和企业版,我们这次使用Centos安装Docker。Centos6对docker支持的不好,使用docker建议升级到centos7。

1.1、直接通过yum安装即可:

yum install -y docker

启动docker:

service docker start

查询docker版本:

docker version

1.2在Centos6上安装Docker

rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y docker-io
service docker start

在这里咱们docker就安装完毕了,如果有没有了解过docker知识的小伙伴建议先去学习一下docker的相关知识。

2.安装Jenkins

本次我们在Dokcer下安装Jenkins:
拉去镜像:

docker pull jenkinsci/blueocean

然后创建容器:

docker create --name jenkins -u root -p 8889:8080 --privileged=true -v jenkinsdata:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/apache-maven-3.5.4:/var/local/apache-maven-3.5.4 -v /usr/local/java/jdk1.8.0_221:/var/local/jdk1.8.0_221 -v /home/jenkins:/home docker.io/jenkinsci/blueocean

这里我们将8080端口映射到宿主机的8889端口,然后记住需要挂载目录(由于后续部署的时候需要Maven+JDK环境所以将宿主机安装的Maven+JDK目录挂载进Docker)
查看docker 容器

docker ps -a

在这里插入图片描述
然后启动容器

docker start jenkins

然后访问jenkins
ip(自己宿主机ip):8889
初次运行Jenkins会经过一个安装过程,一般情况使用默认配置,下一步安装即可,其中一步需要输入密码,如下图
在这里插入图片描述

docker exec ‐it jenkins /bin/bash  这个命令是进入容器的命令
cat /var/jenkins_home/secrets/initialadminPassword

接下来点击默认Jenkins安装的插件进入,然后设置一个登录账户就进入jenkins主界面了
在这里插入图片描述
接下来需要配置一些插件

在这里插入图片描述

2.1安装插件SSH plugin

SSH remote hosts是Jenkins提供的一种远程访问ssh服务器的方法,通过如下步骤测试此功能
从可选插件中选择SSH Plugin进行安装

在这里插入图片描述
接下来配置凭证(也就是你需要远程访问宿主机的账户密码)
在这里插入图片描述

2.2安装插件Maven插件

在这里插入图片描述

2.3 Jenkins全局工具配置

在这里插入图片描述
本项目使用Jenkins需要配置Jdk1.8、Git、maven。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 配置SSH sites

配置远程ssh服务器的ip和端口
在这里插入图片描述

2.5 搭建docker私有仓库

docker run ‐‐name docker‐registry ‐d ‐p 5000:5000 registry

上边显示 registry镜像已经创建,并且docker-registry容器已经启动成功。
访问:http://192.168.101.64:5000/v2/_catalog

由于我们需要将镜像Push到私有仓库需要开启远程访问
此处分享这篇文章
https://www.jianshu.com/p/1057a874b9dd

vim /usr/lib/systemd/system/docker.service
/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

将上面的代码插入其中
在这里插入图片描述
docker重新读取配置文件,重启docker服务

systemctl daemon-reload
systemctl restart docker

3.SpringBoot编写相关构建文件(需将构建文件上次至Gitee)

接下来就是编写Dockerfile文件、和pom_docker_registry.xml插件文件
在这里插入图片描述

FROM java:8
VOLUME /tmp
ADD liandong-eureka-1.0-SNAPSHOT.jar liandong-eureka.jar
RUN bash -c 'touch /liandong-eureka.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/liandong-eureka.jar"]

这个Dockerfile 文件可以根据自己项目的实际情况来进行编写

在这里插入图片描述

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>liandong-parent</artifactId>
        <groupId>com.liandong</groupId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>liandong-eureka</artifactId>
    <dependencies>
        <!-- 导入Eureka服务的依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--docker镜像相关的配置信息-->
                <configuration>
                    <!--镜像名,这里用工程名-->
                    <imageName>${project.artifactId}</imageName>
                    <!--Dockerfile文件所在目录-->
                    <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
                    <!--TAG,这里用工程版本号-->
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <registryUrl>47.98.199.60:5000</registryUrl>
                    <!--<dockerHost>47.98.199.60:2375</dockerHost>-->
                    <pushImage>true</pushImage>
                    <imageName>47.98.199.60:5000/${project.artifactId}:${project.version}</imageName>
                    <!--构建镜像的配置信息-->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.artifactId}-${project.version}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

以上是我的pom_docker_registry.xml文件 各位可以根据自己的项目依葫芦画瓢

4.创建持续集成任务

4.1 构建自由风格的项目

在这里插入图片描述

4.2 配置git仓库

在这里插入图片描述

4.3 构建命令

在这里插入图片描述
在这里插入图片描述
这里我将我的脚本文件贴出来大家可以参考

#!/bin/bash
result=$(docker ps | grep "47.98.199.60:5000/liandong-eureka")
if [[ "$result" != "" ]]
then
echo "liandong-eureka"
docker liandong-eureka
fi
result1=$(docker ps -a | grep "47.98.199.60:5000/liandong-eureka")
if [[ "$result1" != "" ]]
then
echo "rm liandong-eureka"
docker rm liandong-eureka
fi
result2=$(docker images | grep "47.98.199.60:5000/liandong-eureka")
if [[ "$result2" != "" ]]
then
echo "47.98.199.60:5000/liandong-eureka:1.0-SNAPSHOT"
docker rmi 47.98.199.60:5000/liandong-eureka:1.0-SNAPSHOT
fi

在这里插入图片描述

clean package -f liandong-eureka/pom_docker_registry.xml -DskipTests docker:build

在这里插入图片描述

docker run --name liandong-eureka -p 50101:50101 -idt 47.98.199.60:5000/liandong-eureka:1.0-SNAPSHOT
docker logs -f liandong-eureka

整体的一个构建步骤:
构建前先删除docker中已经存在的镜像和同期---->然后用Maven打包推到私有仓库----->然后启动容器

5.接来就直接开始构建

5.1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
构建成功
写的不好请大家见谅,有不对的地方请大家及时指出

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值