写在前面

首先我们在使用默认的 Jenkins 安装配置的时候,是缺少几个插件的,我们需要手动安装上去,插件名称如下(我安装 Jenkins 的时候默认把他汉化了):

  • SSH server
  • Publish Over SSH
  • Docker Pipeline
  • Docker
  • Docker Commons Plugin
  • Maven Integration Plugin

然后重启就好了

插件安装入口

准备好 GIT 仓库

就是一个可以看到效果的 Test 工程,这里我使用我的一个 web 工程来测试:https://gitee.com/peppa-qiu/ci-cd-test.git

特别说明,项目中需要有 Dockerfile,和 docker-compose-dev.yml 文件

  • Dockerfile 文件
FROM openjdk:oraclelinux8RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeLABEL "author"="qiuqiuya"
LABEL "version"="1.0"
LABEL "email"="fortunate_qkm@163.com"ADD *.jar app.jarEXPOSE 8081ENTRYPOINT ["java", "-jar", "-Duser.timezone=GMT+08", "-Dfile.encoding=UTF-8", "-Dsun.jnu.encoding=UTF-8", "/app.jar"]
  • docker-compose-dev.yml 文件
version: "3"services:ci-cd-test:container_name: ci-cd-testimage: ci-cd-test:${BUILD_NUMBER}ports:- "8081:8080"restart: always

创建之前的准备

1、设置 --> 全局工具配置:设置 jdk,maven,ssh server


2、系统管理 --> 系统配置:配置 SSH Servers

注意,这一步需要安装好 SSH server、Publish Over SSH 这两个插件

Jenkins 创建构建流程

1、创建一个 maven 项目

2、配置构建流程

1、配置 GIT 仓库信息

2、配置触发构建条件

3、配置 Build

2、构建成功之后的操作(Post Steps)

记得勾选一下 Verbose output in console,可以到时候在控制台看到输出信息

上传 jar 包到服务器的配置:

上传 Dockerfile 文件的配置(另外一个 docker-compose-dev.yml 一样的操作,这里就不截图了):


Mac 版本 SHELL 脚本

#!/bin/bash
source /etc/profile
source ~/.zshrc
if [[ -a ".env" ]];
then rm -rf .env
fi
cd /Users/qiukangming/jenkins-build/ci-cd-test
# BUILD_NUMBER 是 Jenkins 的内置变量,可以使用 $ 获取
echo BUILD_NUMBER=${BUILD_NUMBER}  >> .env
docker build -t ci-cd-test:${BUILD_NUMBER} .
docker-compose -f docker-compose-dev.yml -p ci-cd-test stop
docker-compose -f docker-compose-dev.yml -p ci-cd-test up -d

Linux 版本 SHELL 脚本

#!/bin/bash
source /etc/profile
if [[ -a ".env" ]];
then rm -rf .env
fi
cd /root/jenkins-build/ci-cd-test
echo BUILD_NUMBER=${BUILD_NUMBER}  >> .env
docker build -t ci-cd-test:${BUILD_NUMBER} .
docker-compose -f docker-compose-dev.yml -p ci-cd-test stop
docker-compose -f docker-compose-dev.yml -p ci-cd-test up -d

然后保存退出就行了~

3、查看效果

我们可以等待 5 分钟自动构建,也可以手动运行构建流程





4、服务器上查看构建好的文件

5、查看 Docker 情况


6、访问接口

到这里我们的 Jenkins 的 CI/CD 流程就弄好啦~

使用 Jenkins 自动部署 java-web 应用到 Docker 容器(全过程)相关推荐

  1. docker 部署_GitLab CI 自动部署netcore web api 到Docker

    前端篇文章中,我们已经成功的将asp.net core webapi在Docker容器中运行,并且部署了一套自己的GitLab环境. .Net & Docker(二)5分钟快速用Docker部 ...

  2. GitLab CI 自动部署netcore web api 到Docker

    前端篇文章中,我们已经成功的将asp.net core webapi在Docker容器中运行,并且部署了一套自己的GitLab环境. .Net & Docker(二)5分钟快速用Docker部 ...

  3. 使用Maven自动部署Java Web项目到Tomcat问题小记

    导读 首先说说自己为啥要用maven管理项目,一个直接的原因是:我在自己电脑上开发web项目,每次部署到服务器上时都要经历如下步骤: 首先在Eclipse里将项目打包成war包 将服务器上原来的项目文 ...

  4. Docker启动tomcat容器部署java web应用详细过程

    1.由于docker拉取tomcat镜像速度非常慢,可以在网易云镜像中心获取镜像地址 docker pull hub.c.163.com/library/tomcat:latest 下载成功后,查看下 ...

  5. jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件

    jenkins部署java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...

  6. 在Window上使用Jenkins自动部署和上传快照Java工件

    这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 ...

  7. jenkins编译java_在Window上使用Jenkins自动发布Java工件

    jenkins编译java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...

  8. 在Window上使用Jenkins自动发布Java工件

    这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 ...

  9. hexo使用jenkins自动部署到阿里云

    hexo使用jenkins自动部署到阿里云 本地安装hexo npm install hexo-cli -g hexo init blog cd blog npm install hexo serve ...

  10. 在Tomcat中部署Java Web应用程序几种方式

    在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录.  一.静态部署       静态部署指的是我们在服务器启动之 ...

最新文章

  1. 博士Nature发文:研究生阶段,4点经验助你学术“独立”!
  2. R语言定量变量组间差异检验
  3. wireshark分析SIP协议——注册
  4. 线程---生产者消费者问题
  5. 军队计算机使用管理规定,军队通用计算机系统使用安全要求.doc
  6. JS中实现Trim(),TrimStart(),TrimEnd() 的方法
  7. java socket wex5,在wex5中如何一行代码更新数据
  8. 北方交大的开源软件镜像站
  9. 余晨:我终于采访到了马斯克,他是个腼腆的钢铁侠
  10. python 等值线插值,CartoPy等值线的插值方法
  11. 学生每日计划表_小学生每日学习计划安排表
  12. 激荡十年:云计算的过去、现在和未来
  13. pivotal公司简介
  14. Android实现Twitter登录分享
  15. 数据分析入门系列教程-SVM实战
  16. Linux生成校验文件asc,使用 GnuPG 加密签名来验证下载文件的可靠性和完整性
  17. Android系统分析——Bootloader(Lk)
  18. RT-Thread 入门学习笔记 - 熟悉全局中断的操作
  19. 《毛毛虫团队》第四次作业:基于原型的团队项目需求调研与分析
  20. Rigetti Computing完成SPAC交易,在纳斯达克上市

热门文章

  1. 【MM模块】Batch 批次管理1
  2. 计划策略的配置参数(2)
  3. SAP评估控制 Valuation control
  4. 没有一部是烂片 香港最强水准的10部影片
  5. MM 收货容差如何设定
  6. 电子商务模式都有哪些
  7. 跟人聊天的总结:为什么选择SAP
  8. 去掉Word2007中的软回车(从网页粘贴文字的一些编辑)
  9. 不起眼的夫妻店,为何会被阿里、京东、苏宁同时盯上?
  10. android 服务器201,Android端i-jetty服务器开发(八)