Jinkins+docker+gitlab的自动化部署(maven项目)

1、项目准备工作

        对你的maven项目进行添加插件 。在pom.xml 里面进行docker插件的引入和springboot的打包插件(加上docker文件的配置)

<build>
        <finalName>test</finalName>

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.plugin.version}</version>
                <executions>
                </executions>
                <configuration>
                    <imageName>${docker.browse}/${docker.image.prefix}/${project.build.finalName}:${docker.tag}</imageName>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <serverId>docker-registry</serverId>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

    <!-- docker配置 -->
        <docker.image.prefix>lhl</docker.image.prefix>
        <docker.plugin.version>1.0.0</docker.plugin.version>
        <docker.tag>3.0.0</docker.tag>
        <docker.browse>{地址}:{端口}</docker.browse>

        2、在项目的src/main创建Docker文件夹并创建Dockerfile文件

# 第一阶段构建,设置基础镜像镜像地址加基础镜像
FROM 111.11.11.1:11/unitid-jre8-fonts:8u191-alpine
# 挂载目录
VOLUME /tmp
# 将你的maven打包的jar包{主机环境的文件} 拷贝到 镜像目录下面
ADD test.jar app.jar
# 修改你的访问时间为当前时间
RUN bash -c 'touch /app.jar'
# 为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker 
# run 命令行参数中指定要运行的程序所覆盖。
CMD ["java","-server","-Xms256m","-Xmx512m","-Duser.timezone=GMT+8","-jar","/app.jar"]
# 设置你的端口号
EXPOSE 12345

2、构建jenkins的maven项目

        2.1 项目描述

   2.2 jdk的选择

2.3 gitlab仓库和分支的选择
2.4 pom文件的选择

(跳过单元测试)

 

2.5 SSH的脚本命令 

 

    (执行脚本代码块)

//

cd /home/jenkins/command       

                           

./stop.sh 172.16.3.207:8085/lhl/test:3.0.0
                                   
./remove.sh 172.16.3.207:8085/lhl/test
                                   
docker pull 172.16.3.207:8085/lhl/test:3.0.0
                               
docker run -d -m 1g -p 12345:12345 \

//容器和宿主机在一个网络内
--net=host \

//容器退出时重启容器
--restart=always \
172.16.3.207:8085/lhl/test:3.0.0 \
/bin/bash -c 'java -server -Xms512m -Xmx1g -Duser.timezone=GMT+8  -jar /app.jar'

      完事后执行构建命令即可  (End---------)

3 、构建项目

 构建流程分析

      构建jenkins的空间----->拉取gitlab仓库的项目------> 根据pom文件进行打包项目(跳过单元测试)------>执行Dockerfile文件(创建镜像-->挂载目录-->拷贝jar-->修改时间-->运行默认程序-->端口号)------>built seccessfully----->上传到服务器------->执行脚本命令(cd文件--->stop停之容器--->删除容器-->pull镜像-->运行容器,指定端口--->-->end)------->finished:success、

4、jenkins逻辑运行图

个人理解,有问题大家一起讨论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Jenkins是一款开源的持续集成工具,它可以帮助开发团队自动化地构建、测试和部署软件项目。在Jenkins中配置Docker插件后,我们可以结合Docker技术来进行自动化部署Docker是一种轻量级的容器化技术,它可以将应用程序和其依赖的环境打包成一个可移植的容器,方便在不同的环境中部署和运行。 而Kubernetes(简称K8s)是一个开源的容器编排平台,它可以管理和调度Docker容器集群。通过在K8s中创建Pod、Service等资源对象,我们可以实现Spring Cloud项目自动化部署。 首先,我们可以使用Jenkins的Pipeline功能来编写自动化部署的流水线脚本。流水线脚本可以定义一系列的步骤,包括构建、测试和部署等。在流水线脚本中,我们可以使用Docker插件来创建Docker镜像,并将其推送到Docker仓库。接着,我们可以使用K8s插件来在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。 在自动化部署过程中,我们可以将Spring Cloud项目的源代码与Dockerfile放在一个Git仓库中,并通过Jenkins的Webhook功能来触发自动化部署流水线。当有新的代码提交时,Jenkins会自动拉取最新的代码,并执行流水线脚本。在流水线脚本中,我们可以使用Maven或Gradle等工具来构建和打包Spring Cloud项目。然后,通过Docker插件创建可运行的Docker镜像,并将其推送到Docker仓库。 最后,使用K8s插件在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。通过创建Deployment对象,我们可以定义应用程序的副本数和容器的镜像。通过创建Service对象,我们可以定义应用程序可以访问的网络端口和负载均衡规则。 通过Jenkins、Docker和Kubernetes的自动化部署,我们可以实现Spring Cloud项目的快速、可靠和可重复部署。这种自动化部署的方式可以提高开发效率和部署质量,同时也降低了运维成本和风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值