我就用一台服务器模拟,gitlab用公司现成的,jenkins安装发版都是在同一台服务器上
安装Jenkins(Docker)
宿主机上创建数据映射目录
mkdir /data/jenkins
给映射目录权限,不然jenkins用不了
chmod -R 777 /data/jenkins/
启动Jenkins并挂载目录
docker run -d -p 8888:8080 --name=jenkins --restart=always -v /data/jenkins/:/var/jenkins_home jenkins/jenkins:2.401.3-lts
访问Jenkins,ip:映射的端口
复制密码,可以在提示的路径去查找(可以直接在宿主机映射的目录去看),也可以直接查看Jenkins启动日志,我这里直接查看启动日志
docker logs jenkins
将密码填入管理员密码框中,点击继续,选择按推荐的插件安装(都无所谓,进去后在安装也行)
安装完插件后,会让你设置个管理员账户
保存并完成,开始使用Jenkins
设置Maven、JDK添加远程服务器
如果你的在安装插件的时候都成功了没有报错,直接重启一下Jenkins会发现直接汉化了
docker restart jenkins
安装Git Parameter、Publish Over SSH插件
使用wget下载Maven到服务器
wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz
下载JDK上传服务器,jdk8需要登录Oracle账号才给下载
https://download.oracle.com/otn/java/jdk/8u381-b09/8c876547113c4e4aab3c868e9e0ec572/jdk-8u381-linux-x64.tar.gz
服务器上解压,务必使用sudo不然会提示权限不足
sudo tar -zxvf apache-maven-3.9.3-bin.tar.gz
sudo tar -zxvf jdk-8u381-linux-x64.tar.gz
将解压后的maven、jdk移动到/var/jenkins_home里面(挂载到宿主机的/data/jenkins目录的,所以直接移动/data/jenkins目录即可)
mv apache-maven-3.9.3 /data/jenkins/
mv jdk1.8.0_381 /data/jenkins/
回到Jenkins设置页面,全局工具配置,设置maven和jdk
别名随意可识别即可,路径得按容器内部的路径来设置
/var/jenkins_home/jdk1.8.0_381
/var/jenkins_home/apache-maven-3.9.3
进到系统配置,添加服务器ssh连接
在最下边添加
安装Gitlab比较吃性能,不安装了直接用公司现成的仓库
新建一个空白项目
为了方便,直接设置公开项目了
在克隆里面将仓库地址拿出来,idea、jenkins都需要用到:http://git.hkeasyspeed.com/root/shuai.git
测试项目设置
修改pom.xml文件指定jar包叫shuai
<finalName>shuai</finalName>
项目下新建了个docker目录存放了Dockerfile、docker-compose.yml文件
Dockerfile,自定义构建镜像,将shuai.jar复制过来并启动
FROM daocloud.io/library/java:8u40-jdk
COPY shuai.jar /usr/local/
WORKDIR /usr/local
CMD java -jar shuai.jar
docker-compose.yml,启动和映射
version: "3.1"
services:
mytest:
build:
context: ./
dockerfile: Dockerfile
image: shuai:v1.0.0
container_name: shuai
ports:
- 9999:8080
idea提交代码,默认提交为main分支,可以新建分支提交,为了方便(懒)我就直接提交了
就展示一句“我是真滴帅!!!!”
package com.monster.mytest.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "我是真滴帅!!!";
}
}
推送到gitlab
Jenkins持续化部署设置
创建项目
构建一个自由风格项目
启用参数构建过程,默认值是master
设置Git,将前面的gitlab地址填进来,分支在jenkins里面默认master分支,我这里只有只有一个main分支修改对应分支。
设置的公开项目,不需要账号密码即可拉取
设置打包build,添加执行shell、调用顶层maven目标
最下面的构建操作,将启动的老容器关闭再启动新的容器
发版验证
jenkins项目点击Build with Parameters,右侧会显示我们在gitlab打的标签
选择相应标签构建即可
选择不同的标签,发布的就是提交不同的内容