章节导航
- 搭建微服务自动构建环境(jenkins + gitee + docker + maven)
- 搭建统一网关(nginx + zuul)
- 搭建注册中心及配置中心(nacos)
- 配置限流、熔断机制(sentinel)
- 搭建监控平台(elk + spring boot admin)
文章目录
一、简介
搭建自动部署的原因网上有很多,就不具体展开去说。就从自己在实际项目开发中的感受说起,以前用.NET开发的时候,由于没有采用自动部署这种开发模式,导致每次开发完后发布到IIS都是一个很痛苦的过程,每次都要复制黏贴到服务器的IIS中,不同的环境还有操作多次,在过程中很容易出现问题。
后来转做Java开发,团队决定采用自动部署的方式,最终决定采用Gitlab+Jenkins+Docker+Maven这种搭配的方式,将开发从部署运维的过程中解放出来,只专注于开发业务模块,接下来不废话,直接进入主题。
二、配置Gitee
为什么这里是用Gitee,因为我在实验的机器内存太低,导致安装了Gitlab后服务器系统经常卡崩溃,后来就决定不再自己搭建源代码管理,直接使用国内的代码管理码云(Gitee),如果想自己搭建Gitlab的朋友可以参考这篇文章《Centos7.4安装Gitlab》。
Gitee登录地址:https://gitee.com/
进入页面后,在设置界面配置自己的SSH公钥,我一般都会选择配置公钥,因为SSH的传输比较Http来说会相对稳定快速一些,配置完SSH就可以开始在Gitee上创建代码库了。
三、安装Docker
安装指令
[root@zhengjf ~]# yum install -y docker
查看安装的docker版本号
[root@zhengjf ~]# docker --version
启动docker
[root@zhengjf ~]# systemctl start docker
初始化swarm
[root@zhengjf ~]# docker swarm init
设置docker服务开机自动启动
[root@zhengjf ~]# systemctl enable docker
四、安装Docker - Jenkins自动部署
创建jenkins目录
[root@zhengjf ~]# mkdir /usr/local/jenkins
拉取jenkins镜像
[root@zhengjf ~]# docker pull docker.io/jenkins/jenkins
docker.io/jenkins:国外镜像,英文版本(有些阿里云服务器无法安装该镜像的部分插件)
docker.io/jenkins/jenkins:用的是国内镜像,中文版本
查看docker镜像
[root@zhengjf ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/jenkins/jenkins latest a791ff28ff47 2 weeks ago 577 MB
启动docker容器
[root@zhengjf ~]# docker run -i -t --privileged=true -u root --restart always -d -p 10001:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins
–restart always 设置容器自动重启
-u root 使用root用户登录【此参数很重要,否则会导致jenkins从git上拉去代码的时候提示权限不足】
-d 后台运行镜像
-p 10001:8080 将镜像的8080端口映射到服务器的10001端口
-p 50000:50000 将镜像的50000端口映射到服务器的50000端口
-v jenkins:/usr/local/jenkins 将宿主机上的一个目录挂载到这个位置/var/jenkins_home,冒号前面是宿主文件路径,冒号后面是docker容器内路径
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置。
–name jenkins 给容器起一个别名
查看运行的容器
[root@zhengjf ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65a3571ed119 jdk-supervisor "/bin/sh -c '/usr/..." 13 days ago Up 5 days 0.0.0.0:25100->25100/tcp dev_sysinfo
315dbede1277 docker.io/jenkins/jenkins "/sbin/tini -- /us..." 13 days ago Up 13 days 0.0.0.0:50000->50000/tcp, 0.0.0.0:10001->8080/tcp jenkins
在浏览器输入地址 http://ip:port/,出现初始登录页面
查看上述路径的初始化密码
[root@zhengjf ~]# docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
2df4680c3f5e41fabc491fdbd0a3387b
将上述密码输入后,显示如下界面,点击【安装推荐的插件】
安装过程如下图:
五、使用jenkins构建maven项目
(一)安装相关插件
1. 安装maven构建插件
<