微服务自动化部署SpringCloud+Dockerfile+docker-compose+git+Maven
程序员文章站
2022-04-18 20:54:23
...
参考:http://www.broadview.com.cn/28208 感谢作者汪云飞!
基础知识
本文是下文的进阶篇,进一步以微服务为基础进行集成自动化部署
云服务器搭建集成自动化部署Java+Maven+Git+Jenkins+Docker+Mysql+Nginx
准备工作
- 基础环境准备请参考基础知识
-
GibHub项目代码
主要以6个微服务组成:- discovery:Eureka Server 为微服务提供注册
- config::配置服务器,为微服务提供外部配置
- person:为UI模块提供Rest服务,存储读取数据库数据
- some:为UI模块返回一段配置在config上的字符串
- UI:应用网关,提供外部唯一入口,使用Feign消费person,Ribbon消费some,并支持断路器功能
- monitor:监控模块
项目本地部署(开发环境-dev)
- 用IDE导入项目代码后,进行Maven的项目构建,等待编译完成
- 依次找到各个模块的-src-main-java-xxxApplication 先启动discovery模块和config模块,随后启动其他模块
- 本地访问http://localhost:8761进行查看Eureka服务,以及其他模块心跳
- 本地访问http://localhost,进行查看UI模块,并且测试person和some模块
- 本地访问localhost:8989/hystrix.stream,在界面输入http://localhost/hystrix.steam 查看服务监控界面(点几下some和person服务,可以看到监控波动)
- 本地加载的是config服务上没有-docker后缀的yml,即开发环境
云服务器部署(生产环境-pro)
- docker-maven-plugin :提供在开发本地进行编译Docker镜像,并生成到本地或者服务器(已包含在项目代码中)
- 开启服务器端的docker端口,编辑文件
vim /usr/lib/systemd/system/docker.service
- 在ExecStart行后面增加参数 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
- docker重启,注意正在跑的容器会停止
systemctl daemon-reload
systemctl restart docker
- 配置远程服务器地址:
在环境变量中增加DOCKER_HOME,值为tcp://xxx.xxx.xxx.xxx:2375 - 本地命令行(cmd)进入项目目录执行:mvn clean package docker:build -DeskipTests
E:\Git\SpringCloud>mvn clean package docker:build -DeskipTests
结果如图:
- 查看服务器容器镜像
docker images
可以看到各服务镜像已经生成。
-
拷贝项目根目录下的文件docker-compose.yml到服务器工作目录
-
安装docker-compose(默认docker是没有安装)
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
返回下面信息表示安装成功:
docker-compose version 1.25.0, build 1110ad01
- 根据docker-compose.yml启动服务镜像容器
启动服务群
docker-compose up -d
查看启动的服务群状态
docker-compose ps
- 开启云服务器的端口访问权限
- 访问服务器 http://ip:8761 查看Eureka
- 访问服务器 http://ip:80 查看UI服务,实验some服务和person服务
- 可以看到,服务器加载的是config服务的有-docker后缀的配置文件(后缀名定义在docker-compose文件中)
至此微服务自动化部署已经搭建完成!
其他命令参考:
关闭服务群
docker-compose stop
删除服务群
docker-compose rm