docker部署apollo详细教程(亲测)
作者:星晴(当地小有名气,小到只有自己知道的杰伦粉)
1、前言
apollo的详细介绍我就不在这里多说了,官网上https://github.com/ctripcorp/...已经说的非常明白了,我就不在这班门弄斧了,还不了解的小伙伴可以去官网上去了解下。
本篇文章只是记录我在使用docker部署的Apollo以及其集群的方式,给大家分享出来也自我做一个记录。
注意:我是直接部署开始的,有关数据库的创建和初始化自己根据官网搞定。
2、源码编译
2.1 下载源码
github:https://github.com/ctripcorp/apollo
2.2 修改源码配置
2.2.1 网络策略
网络策略直接使用官网描述的就可以,具体就是分别编辑apollo-configservice/src/main/resources/application.yml和apollo-adminservice/src/main/resources/application.yml,然后把需要忽略的网卡加进去。
如下面这个例子就是对于apollo-configservice,把docker0和veth.*的网卡在注册到Eureka时忽略掉。
spring: application: name: apollo-configservice profiles: active: ${apollo_profile} cloud: inetutils: ignoredInterfaces: - docker0 - veth.*
2.2.2 动态指定注册网络
在使用docker搭建集群是, adminservice、configservice都需要向注册中心注册地址,如果不指定注册IP,注册的是docker内部的网络,导致网络不通。在apollo-configservice/src/main/resources/bootstrap.yml和apollo-adminservice/src/main/resources/bootstrap.yml添加如下代码。
eureka: instance: ip-address: ${eureka.instance.ip-address}
到这源码的修改已经完成,直接build打包就可以了,拿到对应三个服务的zip包。
这个地方取值从环境变量中取,容器外部来配置这样给部署带来了更大的灵活性。