欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微服务自动化部署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

结果如图:
微服务自动化部署SpringCloud+Dockerfile+docker-compose+git+Maven

  • 查看服务器容器镜像
docker images

可以看到各服务镜像已经生成。
微服务自动化部署SpringCloud+Dockerfile+docker-compose+git+Maven

  • 拷贝项目根目录下的文件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