Jenkins version 2.277.4 Docker version 20.10.5
docker 安装一切都是那么简单,注意检查8080是否已经占用!
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
详情见官网教程->https://www.jenkins.io/zh/doc...
小试牛刀,先创建简单的任务,任务内容:执行服务器的shell脚本或Linux命令。
由于jenkins 部署在docker容器内,没办法直接执行宿主机上的shell脚本,需要ssh登录到宿主机上执行。这就需要Publish Over SSH插件。(如果Jenkins不是用docker部署的就不会有这个烦恼)同样的道理,如果jenkins和项目不在一台服务器也可以使用这个插件,远程拷贝打包的文件或者执行脚本等。
首页->系统管理->插件管理->搜索Publish Over SSH并安装.
首页->系统管理->系统配置->
首页->新建任务->填写任务名称->选择:构建一个自由风格的软件项目
直接在切到【构建】选项卡,点击【添加构建步骤】选择Send files or execute commands over SSH
在SSH service下面选择刚刚在【系统配置】配置的服务器。
Exec command一栏直接输入命令即可,不妨可以试试echo $(pwd)
命令。
保存,第一个任务建成功了,回到任务详情页,点击立即构建,找到【控制台输出】可以看到执行详情。
原理:jenkins用git插件将项目拉下来,用Maven Integration插件打包,用Publish Over SSH插件将打包的jar或者文件夹发送到部署项目的服务器,并执行shell脚本启动~
先决条件:
同样创建任务,来到配置页面,切到【源码管理】选项卡配置仓库地址和密钥:
这个时候可以保存并点击立即构建看看代码能否拉下来。
切到【构建】选项卡,点击【添加构建步骤】选择“调用顶层 Maven 目标
”
maven版本选择在【全局工具配置】里面配置的maven,如果没有就是你不配,不,是你没配!
目标一栏填写打包命令:clean install -Dmaven.test.skip=true,或者根据情况填写。
这个时候可以保存并点击立即构建看看代码能否正常打包。
代码拉下来了,jar也打包好了,但是jar包在容器里面,可以在【构建】模块添加个Send files or execute commands over SSH
,使用Source files和Remote directory传输jar文件,但是我部署jenkins的docker和部署项目的服务器是同一台,使用docker cp 命令就可以将docker容器里面的jar文件拷贝出来,并和启动项目的脚本写在一起。就省去了文件传输,直接执行脚本即可。
docker cp详见《蛮吉学 Docker》
一个自动化部署maven项目的任务就创建完了
Source files(任务的工作空间目录):就是代码拉下来的根目录,如果要传输文件夹用**
表示
Remote directory(登录项目服务器的家目录):ssh登录的家目录,比如root登录这个目录就是/root,且文件只能传输到这个目录下或这个目录的下级目录!
Exclude files:不传输的文件。可以过滤不需要的文件比如README.md
和.gitignore
多个用逗号隔开,保证Pattern separator配置的是[, ]+
nohup: failed to run command java: No such file or directory
,前面加一行source /etc/profile
可以解决。扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有