首页 > 编程语言 > 详细

Jenkins使用docker部署Spring boot项目至远程服务器

时间:2021-04-07 15:24:55      阅读:21      评论:0      收藏:0      [点我收藏+]

一、Jenkins配置:

1、安装Publish Over SSH插件:

技术分享图片

 

 如图所示,进入安装插件页面:

技术分享图片

 

点击安装即可。

2、配置git用户凭证:

 技术分享图片

 

 如上图所示,进入账号维护页面:

技术分享图片

 

 

 添加账号和密码,点击下边的保存:

技术分享图片

 

 

3、系统配置:

技术分享图片

 

 (1)配置jdk和maven全局属性:

技术分享图片

 

 

(2)配置Publish over SSH账号:

拉倒最下边:

技术分享图片

 

 4、全局工具配置:

技术分享图片

 

 

(1)maven配置:

技术分享图片

 

 (2)jdk配置:

技术分享图片

 

 (3)git配置:

技术分享图片

 

 (4)maven环境:

技术分享图片

 

 二、创建部署项目:

1、创建maven item:

技术分享图片

 

点击创建maven工程:

 技术分享图片

 

 

2、创建分支参数:

技术分享图片

 

 3、源码管理设置:

技术分享图片

 

4、构建设置:

技术分享图片

5、Post Steps执行copy:

技术分享图片

 

 备注说明:

(1)当前的jenkins工作空间目录为:/var/lib/jenkins/workspace/

(2)因为需要在远程ssh的服务器docker执行镜像的生成,远程服务器需要项目jar文件和Dockerfile文件。所以这里提前把文件都复制到maven-archiver(这个文件下边的文件比较少)文件下边了,

其实可以随便那个目录都行,主要是后边配置ssh远程复制的时候,只执行一次远程连接复制。

(3)Dockerfile文件是spring boot项目根目录(和pom同级)下创建的,生成镜像使用,具体内容如下:

# 添加 Java 8 镜像来源
FROM java:8
# 添加参数,其中的ARG参数JAR_FILE即在pom.xml中传入的buildArgs:JAR_FILE
ARG JAR_FILE
COPY ${JAR_FILE} auth.jar
EXPOSE 8802
# 执行启动命令
ENTRYPOINT ["java","-jar","/auth.jar"]

(4)spring boot的pom中maven打包配置:

 <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!-- Spring Boot Maven 插件打包,打成jar,直接在linux系统执行 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <configuration>
                    <repository>${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

6、构建后SSH远程操作部署项目:

技术分享图片

 

 远程执行的脚本(方便复制):

#!/bin/bash
cd /usr/local/soft/project/zhxy-auth
echo “构筑镜像start”
docker build -t zhxy-auth . 
echo “构筑镜像end”
MICROSERVICE="zhxy-auth-container1"
startflag=$(docker inspect --format {{.State.Running}} "$MICROSERVICE")
exit=$(docker ps |grep "$MICROSERVICE")
echo “容器的名称:”
echo $MICROSERVICE
echo “容器运行状态”
echo $startflag
start(){
        echo "容器存在,删除容器"
        docker rm  -f  "$MICROSERVICE"
        echo "删除容器成功"
                echo "删除后创建容器"
        docker run --name "$MICROSERVICE" --restart=always -d -p 8802:8802 zhxy-auth
        echo "容器创建完成端口8802"
}
echo "开始启动"
if [ "$exit" == "" ];then
  echo "没有容器,新建容器"
  docker run --name "$MICROSERVICE" --restart=always -d -p 8802:8802 zhxy-auth
  echo "第一次容器创建完成端口8802"
else
  echo "容器存在"
  start
fi
echo “启动结束”
docker ps -a
docker run --name zhxy-auth-container1 --restart=always -d -p 8802:8802 zhxy-auth
echo "删除未用镜像节省空间"
docker rmi -f `docker images -a | grep <none> | awk {print $3}`
docker ps -a
echo "运行成功"

备注:

/usr/local/soft/project/zhxy-auth就是上图中复制到远程的目录。

可以构建部署项目了,至此文档完成!

Jenkins使用docker部署Spring boot项目至远程服务器

原文:https://www.cnblogs.com/yanlaile/p/14627150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!