Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Docker安装Jenkins实现自动化部署Maven项目

Docker安装Jenkins实现自动化部署Maven项目

作者头像
Mshu
发布于 2022-03-22 06:19:45
发布于 2022-03-22 06:19:45
2.9K00
代码可运行
举报
文章被收录于专栏:咸鱼不闲咸鱼不闲
运行总次数:0
代码可运行

Jenkins version 2.277.4 Docker version 20.10.5

安装Jenkins

docker 安装一切都是那么简单,注意检查8080是否已经占用!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

如果没改端口号的话

安装完成后访问地址-> http://{部署jenkins所在服务IP}:8080

初始化Jenkins

详情见官网教程->https://www.jenkins.io/zh/doc...

第一个简单的任务

小试牛刀,先创建简单的任务,任务内容:执行服务器的shell脚本或Linux命令。

由于jenkins 部署在docker容器内,没办法直接执行宿主机上的shell脚本,需要ssh登录到宿主机上执行。这就需要Publish Over SSH插件。(如果Jenkins不是用docker部署的就不会有这个烦恼)同样的道理,如果jenkins和项目不在一台服务器也可以使用这个插件,远程拷贝打包的文件或者执行脚本等。

安装插件

首页->系统管理->插件管理->搜索Publish Over SSH并安装.

配置 Publish Over SSH

首页->系统管理->系统配置->

创建任务

首页->新建任务->填写任务名称->选择:构建一个自由风格的软件项目

直接在切到【构建】选项卡,点击【添加构建步骤】选择Send files or execute commands over SSH

在SSH service下面选择刚刚在【系统配置】配置的服务器。

Exec command一栏直接输入命令即可,不妨可以试试echo $(pwd)命令。

保存,第一个任务建成功了,回到任务详情页,点击立即构建,找到【控制台输出】可以看到执行详情。

创建一个自动化部署maven项目的任务

原理:jenkins用git插件将项目拉下来,用Maven Integration插件打包,用Publish Over SSH插件将打包的jar或者文件夹发送到部署项目的服务器,并执行shell脚本启动~

先决条件:

  1. git插件:在初始化的时候就默认安装的;
  2. Maven Integration插件:安装方法同上;
  3. Maven配置:首页->系统管理->全局工具配置,勾选自动安装,选择maven版本即可;
  4. Publish Over SSH: 创建上一个任务的安装/配置过了;
git拉取代码

同样创建任务,来到配置页面,切到【源码管理】选项卡配置仓库地址和密钥:

这个时候可以保存并点击立即构建看看代码能否拉下来。

Maven 打包

切到【构建】选项卡,点击【添加构建步骤】选择“调用顶层 Maven 目标

maven版本选择在【全局工具配置】里面配置的maven,如果没有就是你不配,不,是你没配!

目标一栏填写打包命令:clean install -Dmaven.test.skip=true,或者根据情况填写。

这个时候可以保存并点击立即构建看看代码能否正常打包。

运行启动脚本

代码拉下来了,jar也打包好了,但是jar包在容器里面,可以在【构建】模块添加个Send files or execute commands over SSH,使用Source filesRemote directory传输jar文件,但是我部署jenkins的docker和部署项目的服务器是同一台,使用docker cp 命令就可以将docker容器里面的jar文件拷贝出来,并和启动项目的脚本写在一起。就省去了文件传输,直接执行脚本即可。

docker cp详见《蛮吉学 Docker》

一个自动化部署maven项目的任务就创建完了

Send files or execute commands over SSH的文件传输功能

Source files(任务的工作空间目录):就是代码拉下来的根目录,如果要传输文件夹用**表示

Remote directory(登录项目服务器的家目录):ssh登录的家目录,比如root登录这个目录就是/root,且文件只能传输到这个目录下或这个目录的下级目录!

Exclude files:不传输的文件。可以过滤不需要的文件比如README.md.gitignore

多个用逗号隔开,保证Pattern separator配置的是[, ]+

注意事项

  1. 【系统配置】里配置Publish Over SSH,SSH服务器的登录用户最好用root,否则执行脚本可能会权限不足!
  2. Send files or execute commands over SSH 的文件传输功能配置的Remote directory只能是用户的家目录!
  3. docker部署的Jenkins不能直接运行宿主机上的shell脚本,且拉取的代码,打包的文件都在docker容器内!要借助Publish Over SSH插件。
  4. 宿主机不需要安装git、maven!
  5. 如果直接执行启动jar的脚本正常,Jenkins执行脚本报错nohup: failed to run command java: No such file or directory,前面加一行source /etc/profile可以解决。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于 Github+Jenkins+Maven+Docker 自动化构建部署
传统的开发、测试、部署方式,是由开发人员本机或打包机进行打包,将war包提交给测试人员部署,测试通过后,再由实施人员负责部署到预发、生产环境中。中间的衔接不连贯,容易出错,而且打包、部署存在重复的工作量。自动化构建部署(CICD)就是解决该问题,将从开发到部署的一系列流程变成自动化,衔接连贯,在构建失败时能够告知开发,构建成功后能够告知测试和实施人员。无论大中小公司,都应该有此流程。
DevOps时代
2019/08/21
3.6K0
基于 Github+Jenkins+Maven+Docker 自动化构建部署
Jenkins+Docker 一键自动化部署 SpringBoot 项目
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
8250
Jenkins+Docker 一键自动化部署 SpringBoot 项目
Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路
本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。
民工哥
2022/10/27
4.4K0
Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路
jenkins + docker自动化部署maven项目
jenkins安装方式有多种,可以直接安装在服务器上,也可以使用docker拉取jenkins镜像,本文是直接安装到服务器上的方式 linux安装jenkins及相关配置可参考这里 一般来说,jenkins自动部署有下面的方式
Qwe7
2022/03/05
1.6K0
Docker 之 Jenkins自动化部署
Docker搭建微服务自动部署 <架构探险之路>,让我们来看看如何实现基于Docker的Jenkins自动化部署。
架构探险之道
2019/07/25
2.7K0
Jenkins + Docker + Gitee自动化部署SpringBoot应用
最近在做毕业设计,遇到一个问题,就是每次编写完一个功能点,就需要重新运行一下项目,然后进行测试,而且项目比较复杂,在本地运行会占用大量的运行内存,导致开发不畅。于是我想着使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程。
wangweijun
2022/05/10
9320
Jenkins + Docker + Gitee自动化部署SpringBoot应用
jenkins和docker实现自动化构建部署
现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。
互扯程序
2018/07/30
2.3K0
jenkins和docker实现自动化构建部署
jenkins搭建文档
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成
默 语
2024/11/20
770
jenkins搭建文档
Linux系统:第十四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)
#出现[Errno -1] 软件包与预期下载的不符。 建议:运行 yum --enablerepo=updates clean metadata正在尝试其它镜像。使用以下命令
Java廖志伟
2022/03/07
1.2K0
Linux系统:第十四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)
jenkins和docker实现自动化构建部署【面试+工作】
jenkins和docker实现自动化构建部署【面试+工作】 应用场景 程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频
Java帮帮
2018/09/29
5.4K0
jenkins和docker实现自动化构建部署【面试+工作】
Docker安装Jenkins打包Maven项目为Docker镜像并运行
Jenkins作为CI、CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的。最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins,小编经过一个星期的探索终于完成了在docker中进行搭建。
掉发的小王
2022/07/11
1.7K0
Docker安装Jenkins打包Maven项目为Docker镜像并运行
SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战
本文章主要讲述Docker、Jenkins、GitLab、Git、JDK、SpringBoot、Maven等技术结合实现自动化运维部署(DevOps)应用工程,适合SpringCloud部署。
JAVA葵花宝典
2021/07/16
9.5K0
我常用的自动化部署技巧,贼好用,推荐给大家!
主要是定义了如何将Jar包打包成Docker镜像,对DockerFile不了解的朋友可以看下《使用Dockerfile为SpringBoot应用构建Docker镜像》,具体内容如下。
macrozheng
2020/05/26
1.4K1
我常用的自动化部署技巧,贼好用,推荐给大家!
实现自动化构建与集成:Jenkins与SVN整合的指南
进入Jenkins插件管理,Available选项,搜索Strict Crumb插件安装Strict Crumb Issuer插件,然后进入jenkins->系统设置->全局安全设置->跨站请求伪造保护,把下拉选项改成Strict Crumb Issue,点开右下高级设置,去除掉Check the session ID选项选中,当然我这样设置了貌似没有生效。
小尘要自信
2023/11/05
1.5K0
实现自动化构建与集成:Jenkins与SVN整合的指南
Docker 安装 Jenkins 并实现项目自动化部署
Jenkins 是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。作为领先的开源自动化服务器,Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目。
码老思
2023/10/19
3.1K0
Docker 安装 Jenkins 并实现项目自动化部署
Docker安装Jenkins实现项目自动部署(Java Web项目) 顶
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
wuweixiang
2018/12/12
2.8K0
性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(实战篇)
Jenkins是目前最流行的开源CI(持续集成)工具,广泛用于项目开发,部署和自动化等。 本文将带着大家一起完成在阿里云Centos 7服务器间完成 Jenkins+Maven自动化部署SpringBoot压测环境整个过程。
高楼Zee
2019/07/17
8210
性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(实战篇)
Jenkins教程(自动化部署)
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。
全栈程序员站长
2022/08/27
10.2K0
Jenkins教程(自动化部署)
还在手动部署jar包吗?快速掌握Jenkins安装,教你使用Jenkins实现持续交付
Add post-build step:Send files or execute commands over SSH
攻城狮Chova
2022/01/22
9010
docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker
在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v
肖哥哥
2018/08/02
7190
docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker
推荐阅读
相关推荐
基于 Github+Jenkins+Maven+Docker 自动化构建部署
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验