专栏首页电光石火Apollo配置中心部署到Docker

Apollo配置中心部署到Docker

使用apollo最新的1.1版本:https://github.com/ctripcorp/apollo docker部署时候会遇到注册中心ip的问题,解决如下2种方法: 1.直接指定要注册的IP,可以修改startup.sh,通过JVM System Property在运行时传入,如-Deureka.instance.ip-address=${指定的IP},或者也可以修改apollo-adminservice或apollo-configservice 的bootstrap.yml文件,加入以下配置

eureka:
  instance:
    ip-address: ${指定的IP}

2.部署的时候,apollo-configservice和apollo-adminservice需要把自己的IP和端口注册到Meta Server(apollo-configservice本身)。 Apollo客户端和Portal会从Meta Server获取服务的地址(IP+端口),然后通过服务地址直接访问。 所以如果实际部署的机器有多块网卡(如docker),或者存在某些网卡的IP是Apollo客户端和Portal无法访问的(如网络安全限制),那么我们就需要在apollo-configservice和apollo-adminservice中做相关限制以避免Eureka将这些网卡的IP注册到Meta Server。 如下面这个例子就是对于apollo-configservice,把docker0和veth.*的网卡在注册到Eureka时忽略掉。

    spring:
      application:
          name: apollo-configservice
      profiles:
        active: ${apollo_profile}
      cloud:
        inetutils:
          ignoredInterfaces:
            - docker0
            - veth.*

注意,对于application.yml修改时要小心,千万不要把其它信息改错了,如spring.application.name等。 修改apollo\scripts\build.bat中数据库地址和dev_meta地址 然后运行bat文件编译 新建三个目录文件,分别将上一步骤在\target目录中生成的.jar、.github.zip文件上传至服务器中 以及 \src\main\docker 目录中的Dockerfile文件

运行docker-compose-apollo.yml文件

docker-compose -f docker-compose-apollo.yml up

docker-compose-apollo.yml内容如下

version: "3"
 
services:
  apollo-configservice:                                         ##容器服务名
    container_name: apollo-configservice                        ##容器名
    build: apollo-configservice/                                ##Dockerfile路径
    image: apollo-configservice:1.1.0                           ##镜像名
    network_mode: host                                          ##网络设置
    ports:
      - "8080:8080"
    volumes:
      - "/docker/apollo/logs/100003171:/opt/logs/100003171"    ##将/opt/logs/100003171目录挂载到宿主机的/docker/apollo/logs/100003171方便在宿主机上查看日志
    environment:
      - spring_datasource_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=apollo
      - spring_datasource_password=
 
  apollo-adminservice:
    container_name: apollo-adminservice
    build: apollo-adminservice/
    image: apollo-adminservice:1.1.0
    network_mode: host
    #net: "host"
    ports:
      - "8090:8090"
    depends_on:
      - apollo-configservice
    volumes:
      - "/docker/apollo/logs/100003172:/opt/logs/100003172"
    environment:
      - spring_datasource_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=apollo
      - spring_datasource_password=
 
  apollo-portal:
    container_name: apollo-portal
    build: apollo-portal/
    image: apollo-portal:1.1.0
    network_mode: host
    #net: "host"
    ports:
      - "8070:8070"
    depends_on:
      - apollo-adminservice
    volumes:
      - "/docker/apollo/logs/100003173:/opt/logs/100003173"
    environment:
      - spring_datasource_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
      - spring_datasource_username=apollo
      - spring_datasource_password=

启动之后,不会马上就有,输入top命令查看 这时候会看到有java 占用cpu 超过 100% 当运行完了就会显示正常(大概5分钟左右)。这时候输入 服务器ip:8070就会看到起好的项目

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • apollo本地启动

    使用apollo最新的1.1版本:https://github.com/ctripcorp/apollo 导入idea设置启动配置

    似水的流年
  • php JSON格式化

    php 的json_encode能把数组转换为json格式的字符串。字符串没有缩进,中文会转为unicode编码,例如\u975a\u4ed4。人阅读比较困难。...

    似水的流年
  • 那些让人惊叹的命令执行效果

    ls命令用于查看文件夹的内容,而ls如果反着写的话,sl就会输出一台嘟嘟嘟的火车,如下图所示:

    似水的流年
  • kubernetes-6:使用yaml方式进行apollo容器化

    http://toutiao.com/item/6698283305726378504/

    千里行走
  • 分布式配置中心之Apollo简易环境部署

    Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治...

    lyb-geek
  • CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

    张善友
  • CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

    Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理...

    张善友
  • apollo本地启动

    使用apollo最新的1.1版本:https://github.com/ctripcorp/apollo 导入idea设置启动配置

    似水的流年
  • Apollo配置中心源码编译及搭建

    Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范...

    java乐园
  • jpsite-v1环境搭建

    git clone https://github.com/xuxueli/xxl-job.git

    蒋老湿

扫码关注云+社区

领取腾讯云代金券