1110 字
6 分钟
Jenkins + Maven + Github/Gitlab + Springboot/Vue.js 实现自动化部署
2020-09-01

Jenkins的安装#

Jenkins 用户手册
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software.
www.jenkins.io

Jenkins在docker环境下安装非常简单。只需要执行命令

Terminal window
#创建网络
docker network create jenkins
#创建容器卷
docker volume create jenkins-docker-certs
docker volume create jenkins-data
#让Jenkins跑起来
docker run
-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
  • -p 8080:8080 docker映射端口号,这里是访问Jenkins的端口号
  • -v jenkins-data:/var/jenkins_home 卷,Jenkins持久数据存储地址
  • -v /var/run/docker.sock:/var/run/docker.sock 卷,映射宿主机的docker到容器内部

Jenkins的环境配置#

1. 打开服务器Jenkins的网页#

如果你没有更改端口号,那么这个地址是你的服务器ip:8080。注意服务器需要打开相应的安全组配置和防火墙设置。然后你会看到这个

解锁Jenkins

(这个图是网上找的,除了地址以外无任何区别)

进入Jenkins的docker容器,找到密码,复制到上面即可。

2. 选择插件,一般选安装推荐的插件。#

(这些图也是在网上找的)

你可以选择创建管理员账户,也可以不创建,直接点击“使用admin账户继续”。这时候登录名是admin,密码是你刚刚复制的一长串字符。

3. 配置镜像地址#

点击系统管理->插件管理->高级

升级站点改成清华大学镜像地址

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

然后点击“提交”

4. 安装相应的插件#

选择可选插件

如果你需要部署SpringBoot项目,需要安装Maven插件;

如果你需要部署NodeJS项目(如Vue.js),需要安装nodejs插件;

如果你需要从gitlab拉取代码,需要安装gitlab及gitlab hook插件。

然后点击“直接安装”。

安装完成后记得重启Jenkins。

5. 配置全局工具#

进入系统管理->全局工具配置

5.1.1 安装JDK#

进入docker容器中,输入

Terminal window
echo $JAVA_HOME

复制JAVA路径,备用。

在刚刚的页面点击“新增JDK”,并取消“自动安装”。在JAVA_HOME输入刚刚复制的路径。

5.1.2 安装Maven及NodeJS#

直接点击“新增Maven”“新增Node JS”即可,记得输入Name。

最后记得点击保存。

Jenkins的用户配置#

如果你的代码存储在Gitlab中,记得配置全局用户信息。

先进入Gitlab中,生成一个private access token

选择生成后,复制token,备用。

接下来到Jenkins部分

进入系统管理->系统配置,找到Gitlab

一般是没有Credentials的,可以新增一个。

这里的API token填写刚刚在Gitlab复制的token

最后记得保存。

创建一个储存在Github的Maven(SpringBoot)项目流水线#

首先在项目根目录下创建Dockerfile,注意这个Dockerfile可以按照自己的需求更改。

FROM java:8
ADD target/*.jar appName.jar
VOLUME /tmp
EXPOSE 9010
ENTRYPOINT ["java", "-jar", "appName.jar"]

在Jenkins创建新的任务

然后填写自己的Github项目地址

然后源码管理选择git,输入自己的git地址。指定分支选择自己需要构建的分支。

如果你没有认证,添加一个即可。可以使用账号密码或ssh认证。

触发器选择GitHub钩子。当然,选择轮询也是可行的。

然后build步骤,记得选择需要构建的pom文件,及构建需要执行的maven指令

在构建后的步骤选择执行shell

因为这里用容器启动springboot项目,shell的作用是根据项目的Dockerfile创建一个运行项目的容器。注意,复制下面的shell时,需要更改生成的项目路径、容器名及映射端口号,请按照实际填写。

Terminal window
cd /var/jenkins_home/workspace/test/
img_output=test
# 先删除之前的容器
echo "remove old container"
# docker ps -a grep $img_output awk '{print $1}'
if docker ps -agrep -i volleyball;then
docker rm -f volleyball
fi
# 删除之前的镜像
echo "remove old image"
docker rmi -f volleyball
# 构建镜像
docker build -t $img_output .
# 打印当前镜像
echo "current docker images"
docker images grep $img_output
# 启动容器
echo "start container"
docker run --name $img_output -p 9010:9010 -d $img_output
# 打印当前容器
echo "current container"
docker ps -a grep $img_output
echo "start service success!"

然后回到Github,我们把钩子设置一下。

URL填写按照上面的填写,为 服务器ip:端口/github-webhook/,注意Content-type选择json。然后选择添加。

最后试试push。然后回到Jenkins,看看构建结果。

如果显示为蓝色,然后在浏览器启动项目也成功,那就构建成功啦!

(Vue部分待更新有时间再写qwq)

Jenkins + Maven + Github/Gitlab + Springboot/Vue.js 实现自动化部署
https://blog.nowcent.cn/posts/dev/jenkins-maven-github-gitlab-springboot-vue-js-实现自动化部署/
作者
orangeboy
发布于
2020-09-01
许可协议
CC BY-NC-SA 4.0