使用 Jenkins 自动部署 java-web 应用到 Docker 容器(全过程)
写在前面
首先我们在使用默认的 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 容器(全过程)相关推荐
- docker 部署_GitLab CI 自动部署netcore web api 到Docker
前端篇文章中,我们已经成功的将asp.net core webapi在Docker容器中运行,并且部署了一套自己的GitLab环境. .Net & Docker(二)5分钟快速用Docker部 ...
- GitLab CI 自动部署netcore web api 到Docker
前端篇文章中,我们已经成功的将asp.net core webapi在Docker容器中运行,并且部署了一套自己的GitLab环境. .Net & Docker(二)5分钟快速用Docker部 ...
- 使用Maven自动部署Java Web项目到Tomcat问题小记
导读 首先说说自己为啥要用maven管理项目,一个直接的原因是:我在自己电脑上开发web项目,每次部署到服务器上时都要经历如下步骤: 首先在Eclipse里将项目打包成war包 将服务器上原来的项目文 ...
- Docker启动tomcat容器部署java web应用详细过程
1.由于docker拉取tomcat镜像速度非常慢,可以在网易云镜像中心获取镜像地址 docker pull hub.c.163.com/library/tomcat:latest 下载成功后,查看下 ...
- jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件
jenkins部署java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...
- 在Window上使用Jenkins自动部署和上传快照Java工件
这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 ...
- jenkins编译java_在Window上使用Jenkins自动发布Java工件
jenkins编译java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...
- 在Window上使用Jenkins自动发布Java工件
这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 ...
- hexo使用jenkins自动部署到阿里云
hexo使用jenkins自动部署到阿里云 本地安装hexo npm install hexo-cli -g hexo init blog cd blog npm install hexo serve ...
- 在Tomcat中部署Java Web应用程序几种方式
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服务器启动之 ...
最新文章
- 博士Nature发文:研究生阶段,4点经验助你学术“独立”!
- R语言定量变量组间差异检验
- wireshark分析SIP协议——注册
- 线程---生产者消费者问题
- 军队计算机使用管理规定,军队通用计算机系统使用安全要求.doc
- JS中实现Trim(),TrimStart(),TrimEnd() 的方法
- java socket wex5,在wex5中如何一行代码更新数据
- 北方交大的开源软件镜像站
- 余晨:我终于采访到了马斯克,他是个腼腆的钢铁侠
- python 等值线插值,CartoPy等值线的插值方法
- 学生每日计划表_小学生每日学习计划安排表
- 激荡十年:云计算的过去、现在和未来
- pivotal公司简介
- Android实现Twitter登录分享
- 数据分析入门系列教程-SVM实战
- Linux生成校验文件asc,使用 GnuPG 加密签名来验证下载文件的可靠性和完整性
- Android系统分析——Bootloader(Lk)
- RT-Thread 入门学习笔记 - 熟悉全局中断的操作
- 《毛毛虫团队》第四次作业:基于原型的团队项目需求调研与分析
- Rigetti Computing完成SPAC交易,在纳斯达克上市