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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值