微服务自动化部署SpringCloud+Dockerfile+docker-compose+git+Maven

5 篇文章 0 订阅

参考:http://www.broadview.com.cn/28208 感谢作者汪云飞!

基础知识

本文是下文的进阶篇,进一步以微服务为基础进行集成自动化部署
云服务器搭建集成自动化部署Java+Maven+Git+Jenkins+Docker+Mysql+Nginx

准备工作

  • 基础环境准备请参考基础知识
  • GibHub项目代码 分支autodeploy
    主要以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的2375端口关闭改回来。

其他参考:

关闭服务群

docker-compose stop

删除服务群

docker-compose rm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值