关于java:JenkinsDockerGiteeSpringBoot自动化部署

47次阅读

共计 3918 个字符,预计需要花费 10 分钟才能阅读完成。

当咱们应用传统的开发方式开发后盾零碎时,每写完一个性能点就须要从新运行一下我的项目,而后进行测试,如果是我的项目比拟小还能够,然而如果我的项目比拟大的话,因为波及的人员比拟多,这种开发方式就比拟麻烦。基于此,咱们就须要应用 Jenkins 配合 Gitee 搭建一个自动化部署平台,并将代码托管到服务器上,这样加重了本地的电脑压力,也解放了部署的流程。

1,搭建 Jenkins 平台

首先,咱们须要搭建一下 Jenkins 自动化构建平台。首先,咱们须要装置 Docker,而后在 Docker 中装置 Jenkins,装置的命令如下:

# 装置 yum-utils 工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的 Docker Yum 源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 装置 Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动 Docker
sudo systemctl start docker
# 配置开机自启动
sudo systemctl enable docker

通过以上指令即可胜利装置 Docker 并启动,接下来咱们通过 Docker 运行 Jenkins。

docker run \
  -d \
  --rm \
  -u root \
  -p 8080:8080 \
  -v /home/jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/develop_resource/apache-maven-3.6.3:/usr/local/maven \
  -v "$HOME":/home \
  jenkinsci/blueocean

执行上述指令 Docker 会主动拉取 Jenkins 的镜像并启动,因为咱们要部署的是 SpringBoot,所以须要筹备 JDK 和 Maven 环境,不过该 Jenkins 镜像自带了 JDK 环境,只需筹备一下 Maven 即可,首先,下载 Maven 压缩包,命令如下:

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

而后,应用命令解压文件。

tar -zxvf apache-maven-3.6.3-bin.tar.gz

解压之后千万要留神 Maven 所在的目录,比方:

/opt/develop_resource/apache-maven-3.6.3

将它挂载到容器的目录里,-v /opt/develop_resource/apache-maven-3.6.3:/usr/local/maven这一条指令中的 Maven 目录千万记得换成本人的。当初,咱们能够运行方才的指令启动 Jenkins 了,通过 docker ps 指令能够查看容器是否启动。

[root@10 /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
dfa1b8b2c7a3   jenkinsci/blueocean   "/sbin/tini -- /usr/…"   15 seconds ago   Up 9 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp   condescending_meitner

接下来,咱们应用服务器的 ip 加端口 8080 的形式拜访 Jenkins。

管理员明码能够在 Jenkins 的启动日志中查看,应用 docker logs dfa1b8b2c7a3 查看日志:

明码就是红框中的字符串,留神红框下的一段提醒:

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

意思是你能够在 /var/jenkins_home/secrets/initialAdminPassword 这个文件中查看到管理员明码,不过这是 Jenkins 容器内的目录,咱们在启动 Jenkins 的就挂载了 Jenkins 的要害目录 /var/jenkins_home,宿主机目录为 /home/jenkins-data,所以能够应用如下指令查看管理员明码。

cat /home/jenkins-data/secrets/initialAdminPassword

失去明码后输出到 Jenkins 页面解锁 Jenkins,而后点击装置举荐的插件。


接下来,间接点击【下一步】。


到这一步,Jenkins 平台就能够正式应用了。

2,Jenkins 平台配置

接下来,就是对 Jenkins 平台的配置,首先配置 Maven。

按步骤点击,即可进入系统配置。首先,在全局属性中进行配置。


还记得咱们在运行 Jenkins 容器时挂载的 Maven 目录吗?挂载到 Jenkins 容器中的目录就是 /usr/local/maven,如果切实搞不懂的你就放弃和我的配置一样即可。

以同样的形式,再新增一个配置:

PATH+EXTRA 的作用是让原来 PATH 变量中的环境不失落,最初点击保留。Maven 配置实现后,须要配置 Gitee。


点击可选插件,选中 Gitee,而后点击 Install without restart 进行装置,期待装置实现即可,Gitee 的相干配置咱们放到前面讲。

3,创立 SpringBoot 利用

首先,咱们创立一个简略的 SpringBoot 利用进行测试,控制器代码如下。

@RestController
public class HelloController {@GetMapping("/hello")
    public String hello(){return "Hello World!";}
}

而后在配置文件 application.yml 中增加:

server:
  port: 8000

并在 main 下新建 docker 文件夹,在 docker 文件夹下新建 Dockefile 文件,内容如下。

# 指定是基于哪个根底镜像
FROM java:8

# 作者信息
MAINTAINER wwj

# 挂载点申明
VOLUME /tmp

# 将本地的一个文件或目录,拷贝到容器的文件或目录里
ADD /target/demo-0.0.1-SNAPSHOT.jar springboot.jar

#shell 脚本
RUN bash -c 'touch /springboot.jar'

# 将容器的 8000 端口裸露,给内部拜访。EXPOSE 8000

# 当容器运行起来时执行应用运行 jar 的指令
ENTRYPOINT ["java", "-jar", "springboot.jar"]

须要留神的是 ADD 指令的编写,当 SpringBoot 利用打包实现后,其 jar 包会被放在 target 目录下。

所以须要指定该文件的地位,应用 ADD 指令将其放入待构建的容器中,接着在 Gitee 中新建一个仓库,并将代码推送到仓库中。

仓库名轻易你叫什么,而后将方才的利用推送下来即可。

4,Gitee 配置

推送实现后,回到 Jenkins 治理界面,咱们来实现 Gitee 的配置,关上系统配置。

找到 Gitee 配置,填入对应的信息:

点击增加按钮增加一个 Jenkins 凭证。

抉择 Gitee API 令牌:

私人令牌的获取地址为:https://gitee.com/profile/personal_access_tokens。


5,新建自动化部署工作

配置实现,接下来新建一个工作,点击新建 Item。

轻易输出一个工作名称,并抉择【Freestyle project】。

在源码管理处勾选 Git,并填入我的项目地址,而后在构建触发器地位勾选触发打包的机会。

在构建触发器最底部地位点击生成 Gitee WebHook 明码。

而后关上 Gitee 我的项目中的 WebHooks,增加 webHook。

此处的 URL 须要填入一个公网 IP,所以如果你是用的虚拟机,就须要用内网穿透工具映射一下。



至于 URL 应该填什么,咱们须要批改一下。

填写实现后点击增加,Gitee 便会发送一个 Post 申请到 Jenkins,如果申请后果如下所示,则配置胜利了。

从新回到 Jenkins 治理界面,持续勾选构建触发器下的轮询 SCM,输出轮询频率。

最初在构建地位下减少构建步骤,抉择执行 shell。

shell 脚本代码如下。

#!/bin/bash -il
docker rm -f app_docker
sleep 1
docker rmi -f app_docker:1.0
sleep 1
mvn clean install -Dmaven.test.skip=true
sleep 1
docker build -t app_docker:1.0 -f ./src/main/docker/Dockerfile .
sleep 1
docker run -d -p 8000:8000 --name app_docker app_docker:1.0

该脚本示意删除正在运行的 app_docker 容器,并删除 app_docker:1.0 镜像,而后应用 mvn 命令打包从 Gitee 拉取来的我的项目代码,接着应用我的项目中的 Dockerfile 文件构建出一个镜像,名称为 app_docker:1.0,最初运行该镜像。

6,打包测试

最初点击保留,部署工作就创立实现了,咱们来测试一下有没有问题。

点击立刻构建,Jenkins 会立马进行一次构建,查看控制台输入。

最初,咱们关上默认的地址即可。

正文完
 0