jenkins通过docker-compose部署springboot项目配置

jenkins通过docker-compose部署springboot项目配置,第1张

jenkins通过docker-compose部署springboot项目配置

接Dockerfile部署文章,有多种部署方式,我这只是整理一个简单的思路,Dockerfile文件用于mvn打包并上传到harbor仓库,docker-compose用于快速的部署项目,缩短部署步骤

一、针对代码部分的修改 1、修改mvn的settings.xml文件,ID会被代码下的pom.xml调用
vim /usr/share/maven/conf/settings.xml
    
           docker-harbor
           admin
           Song2022
        
2、pom.xml文件添加maven插件

vim pom.xml  ####代码当前目录下pom

    
        envirment
        
        
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                    192.168.2.251/song/${artifactId}
                    
                   src/main/docker
                   
                    
                        
                            /
                            ${project.build.directory}
                            ${artifactId}.jar
                        
                    
                    docker-harbor     
                    true  
                
           
        
    
3、编辑Dockerfile文件

vim src/main/docker/Dockerfile 

一行:加载java镜像

二行:copyjar包到服务器

三行:项目运行命令

四行:项目暴露端口

FROM java
COPY *.jar envirment.jar
ENTRYPOINT ["java","-jar","envirment.jar"]
EXPOSE 8098
4、vim docker-compose.yaml文件

这里是最简单的docker-compose文件实例,主要分两部分

第一部分:docker-compose版本这个是根据docker版本来的,19以下都兼容

第二部分:“定义容器名”,“镜像地址”,“总是启动”,“端口映射”,“DNS映射”

我们生产环境还有很多像“挂载卷”,“加载其他镜像”,“数据库连接”,“命令挂载”等等之类的,这里就不多写了,这个需要看官网了解

version: '3.8'
services:
  java_app:
    container_name: CONTAINER_NAME
    image: 192.168.2.251/song/CONTAINER_NAME:GIT_COMMIT
    restart: always
    ports:
      - "PORT:PORT"
    extra_hosts:
      - master.mysql:192.168.2.251
二、Jenkins配置信息 1、 build界面,可以配置发布、回滚、重启,选择分支,

这里的回滚是git版本号,到harbor仓库自动拉取

 2、配置参数化构建过程

 3、代码库地址

 4、环境变量配置,方便调用

IMAGE_NAME:song 平台项目分类     environment以具体项目名区分(容器名) 

PORT:   项目启动端口

CONTAINER_NAME:容器名

 5、shell构建

分为两部分:

第一部分:如果build为deploy发版则先判断git版本号是否变化,如没变化则没有发版必要,停止

第二部分:打包jar包推送到harbor

 
# *** 作校验
if [ ${deploy_env} = "deploy" ];then
    echo -e "33[34mstart ${deploy_env}33[0m"
    echo ${GIT_PREVIOUS_SUCCESSFUL_COMMIT}
    echo ${GIT_COMMIT}
    [ ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} != ${GIT_COMMIT} ] && echo -e "33[34mstart maven package33[0m" || {
        #版本未更新,停止发版
        echo -e "33[31m代码没有更新,停止发版33[0m"
       # exit 1
    }
   #######打包镜像并推送到本地仓库
   cp /root/pom.xml-dockerfile ./pom.xml
   mkdir -p src/main/docker
   cp /root/Dockerfile src/main/docker/
#    mvn clean package docker:build -DdockerImageTags=${GIT_COMMIT} -DpushImageTag
    [ $? -eq 0 ] && echo -e "33[32mmaven打包成功033[0m" || {
    	echo -e "33[31mmaven 打包失败33[0m"
    	exit 1
    } 
fi
 6、远程服务器进行docker部署 
#!/bin/bash

/usr/bin/cp /root/java/docker-compose.yaml ./docker-compose.yaml 

#定义docker-compose变量,注意第一步清空env,后续追加env
INIT_VAR() {
/usr/bin/sed -i 's/CONTAINER_NAME/$CONTAINER_NAME/g' docker-compose.yaml
/usr/bin/sed -i 's/PORT/$PORT/g ' docker-compose.yaml
}
 
#登录harbor
LOGIN_HARBOR() {
    echo -e "33[34m登录harbor33[0m"
    docker login 192.168.2.251
    [ $? -eq 0 ] && echo -e "33[32m登录harbor成功33[0m" || {
        echo -e "33[31m登录harbor失败33[0m"
        exit 1
    }
}

case ${deploy_env} in
deploy)
    LOGIN_HARBOR
    INIT_VAR
    /usr/bin/sed -i 's/GIT_COMMIT/$GIT_COMMIT/g ' docker-compose.yaml
    docker-compose up -d --build
    ;;
rollback)
    LOGIN_HARBOR
    INIT_VAR
    /usr/bin/sed -i 's/GIT_COMMIT/$version/g ' docker-compose.yaml
    docker-compose up -d --build
    ;;
restart)
    docker-compose restart
    ;;
*)
    exit 1
    ;;
esac

发版步骤:

1、登录harbor仓库

2、初始化docker-compose

3、替换harbor仓库镜像地址,单独放出来方便回滚

4、运行docker-compose

回滚步骤:

1、登录harbor仓库

2、初始化docker-compose

3、替换harbor仓库镜像地址,参数化界面输入git版本通过harbor拉取指定版本

4、运行docker-compose

回滚步骤:

1、直接重启compose 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5721659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存