Linuxword Global
当前位置: Linux技术 > Jenkins+Gitlab+Docker容器化工程自动化部署

d7fc48ab3ea5ce585a027ca8270c46fa_800x467

在软件开发过程中,如果我们每一次提交的代码都能够进行一次完整的编译、测试、打包、发布,就能及早发现问题、及早修复,在保证代码质量的同时让产品快速迭代。这就是持续集成(CI)、持续部署(CD)的好处。

目前 CI/CD 的方案有很多,本文将展示一个用 Docker + Jenkins 实现的完整过程。

本文的 CI/CD 流程

开发人员提交代码到自己的分支并 push 到远程仓库 ==> 触发远程仓库(GitHub/GitLab)的 Webhooks ==> Jenkins 接到通知自动执行之前准备好的一个流程(克隆代码,对代码进行编译、测试、打包,没有问题后会执行 docker 命令进行镜像构建)==> 最终发布到测试服务器中。

环境说明

  • 本文选用的测试环境是阿里云的服务器,所以全程也是在服务器上操作的,无需本地安装 docker,当然在本地操作也是可以的。
  • 本文选用的远程代码库是 Gitlab 仓库。
  • 本文中所用的 Jenkins 也是用的 docker 版。

步骤1:

创建springboot项目

步骤2:

创建Jenkins项目maven类型

步骤3:

配置 Webhooks

步骤4:

编写自动任务脚本进行 CI/CD

1cbafaae85b2b107277f6b35d7312199_935x397

#!/bin/bash
set fileformat=unix 

APP_PATH="/usr/hj/apps/hmall-service-auth-jwt"
APP_NAME="hmall-service-auth-jwt"
IMAGE_NAME=${APP_NAME}
CONTAINER_NAME=${APP_NAME}

cp /var/lib/jenkins/workspace/${APP_NAME}/target/${APP_NAME}.jar  ${APP_PATH}

echo "删除之前的镜像和容器"
docker stop ${CONTAINER_NAME}
docker rm   ${CONTAINER_NAME}
docker rmi  ${IMAGE_NAME}


echo "构建镜像" 
cd ${APP_PATH}
docker  build  -t ${IMAGE_NAME}  .
         
echo "发布应用" 

docker  run  -d  -p  9001:9001    -e "spring.profiles.active=test"    ${APP_NAME}  --name   ${CONTAINER_NAME}  ${IMAGE_NAME}

8251394b5abf91b541ce7aff800a0f15_695x575

 

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2591 篇
  • 草稿数目: 22 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 13021 个
  • 注册用户: 139 人
  • 访问总量: 8,654,817 次
  • 最近更新: 2024年11月21日