docker部署部署apollo详细教程详细教程
主要介绍了docker部署apollo详细教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1、前言、前言
apollo的详细介绍我就不在这里多说了,官网上https://github.com/ctripcorp/apollo 已经说的非常明白了,我就不在这班门弄斧
了,还不了解的小伙伴可以去官网上去了解下。
本篇文章只是记录我在使用docker部署的Apollo以及其集群的方式,给大家分享出来也自我做一个记录。
注意: 我是直接部署开始的,有关数据库的创建和初始化自己根据官网搞定。
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.*
注意,对于application.yml修改时要小心,千万不要把其它信息改错了,如spring.application.name等。
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包。
如果懒得修改,也可以直接从https://github.com/yuelicn/apollo.拉下我修改好的源码直接打包即可。
3、、dockerfile编写编写
Apollo 的Dockerfile非常简单, 直接使用官方提供的即可。下方是adminservice示例。
# Dockerfile for apollo-adminservice
# Build with:
# docker build -t apollo-adminservice .
# Run with:
# docker run -p 8090:8090 -d --name apollo-adminservice apollo-adminservice
FROM java:8-jre
MAINTAINER Louis
ENV VERSION 1.5.0
RUN apt-get install unzip
ADD apollo-adminservice-${VERSION}-github.zip /apollo-adminservice/apollo-adminservice-${VERSION}-github.zip
RUN unzip /apollo-adminservice/apollo-adminservice-${VERSION}-github.zip -d /apollo-adminservice \
&& rm -rf /apollo-adminservice/apollo-adminservice-${VERSION}-github.zip \
评论1