当前位置:   article > 正文

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

jenkins docker-compose

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

一、针对代码部分的修改

1、修改mvn的settings.xml文件,ID会被代码下的pom.xml调用

vim /usr/share/maven/conf/settings.xml
  1. <server>
  2. <id>docker-harbor</id>
  3. <username>admin</username>
  4. <password>Song2022</password>
  5. </server>

2、pom.xml文件添加maven插件

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

  1. <build>
  2. <finalName>envirment</finalName>
  3. <!--设置打包名称用于便于部署-->
  4. <plugins>
  5. <plugin>
  6. <groupId>com.spotify</groupId>
  7. <artifactId>docker-maven-plugin</artifactId>
  8. <version>1.0.0</version>
  9. <configuration>
  10. <imageName>192.168.2.251/song/${artifactId}</imageName>
  11. <!--<baseImage>java</baseImage>
  12. <entryPoint>["java","-jar","environmen-0.0.1-SNAPSHOT.jar"]</entryPoint> 这里指定jar运行的命
  13. 令参数,也可以编写一个Dockerfile文件写明-->
  14. <dockerDirectory>src/main/docker</dockerDirectory>
  15. <!--Dockerfile文件目录-->
  16. <resources>
  17. <resource>
  18. <targetPath>/</targetPath>
  19. <directory>${project.build.directory}</directory>
  20. <include>${artifactId}.jar</include>
  21. </resource>
  22. </resources>
  23. <serverId>docker-harbor</serverId> <!--在上面setting.xml中设置的id-->
  24. <forceTags>true</forceTags> <!--重复构建相同镜像则覆盖镜像-->
  25. </configuration>
  26. </plugin>
  27. </plugins>
  28. </build>

3、编辑Dockerfile文件

vim src/main/docker/Dockerfile 

一行:加载java镜像

二行:copyjar包到服务器

三行:项目运行命令

四行:项目暴露端口

  1. FROM java
  2. COPY *.jar envirment.jar
  3. ENTRYPOINT ["java","-jar","envirment.jar"]
  4. EXPOSE 8098

4、vim docker-compose.yaml文件

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

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

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

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

  1. version: '3.8'
  2. services:
  3. java_app:
  4. container_name: CONTAINER_NAME
  5. image: 192.168.2.251/song/CONTAINER_NAME:GIT_COMMIT
  6. restart: always
  7. ports:
  8. - "PORT:PORT"
  9. extra_hosts:
  10. - 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

  1. #操作校验
  2. if [ ${deploy_env} = "deploy" ];then
  3. echo -e "\033[34mstart ${deploy_env}\033[0m"
  4. echo ${GIT_PREVIOUS_SUCCESSFUL_COMMIT}
  5. echo ${GIT_COMMIT}
  6. [ ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} != ${GIT_COMMIT} ] && echo -e "\033[34mstart maven package\033[0m" || {
  7. #版本未更新,停止发版
  8. echo -e "\033[31m代码没有更新,停止发版\033[0m"
  9. # exit 1
  10. }
  11. #######打包镜像并推送到本地仓库
  12. \cp /root/pom.xml-dockerfile ./pom.xml
  13. mkdir -p src/main/docker
  14. \cp /root/Dockerfile src/main/docker/
  15. # mvn clean package docker:build -DdockerImageTags=${GIT_COMMIT} -DpushImageTag
  16. [ $? -eq 0 ] && echo -e "\033[32mmaven打包成功033[0m" || {
  17. echo -e "\033[31mmaven 打包失败\033[0m"
  18. exit 1
  19. }
  20. fi

 6、远程服务器进行docker部署 

  1. #!/bin/bash
  2. \/usr/bin/cp /root/java/docker-compose.yaml ./docker-compose.yaml
  3. #定义docker-compose变量,注意第一步清空env,后续追加env
  4. INIT_VAR() {
  5. /usr/bin/sed -i 's/CONTAINER_NAME/$CONTAINER_NAME/g' docker-compose.yaml
  6. /usr/bin/sed -i 's/PORT/$PORT/g ' docker-compose.yaml
  7. }
  8. #登录harbor
  9. LOGIN_HARBOR() {
  10. echo -e "\033[34m登录harbor\033[0m"
  11. docker login 192.168.2.251
  12. [ $? -eq 0 ] && echo -e "\033[32m登录harbor成功\033[0m" || {
  13. echo -e "\033[31m登录harbor失败\033[0m"
  14. exit 1
  15. }
  16. }
  17. case ${deploy_env} in
  18. deploy)
  19. LOGIN_HARBOR
  20. INIT_VAR
  21. /usr/bin/sed -i 's/GIT_COMMIT/$GIT_COMMIT/g ' docker-compose.yaml
  22. docker-compose up -d --build
  23. ;;
  24. rollback)
  25. LOGIN_HARBOR
  26. INIT_VAR
  27. /usr/bin/sed -i 's/GIT_COMMIT/$version/g ' docker-compose.yaml
  28. docker-compose up -d --build
  29. ;;
  30. restart)
  31. docker-compose restart
  32. ;;
  33. *)
  34. exit 1
  35. ;;
  36. 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 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/218309
推荐阅读
相关标签
  

闽ICP备14008679号