Skip to content
idoop edited this page Sep 19, 2018 · 11 revisions

Welcome to the docker-apollo wiki!

Usage

[TOC]

1. All in One 方式

即开启包括Potal面板,和Dev/Fat/Uat/Pro环境中的一个或多个。这种方法适合开发者临时调试/测试环境的构建,不是那么保险。

因为是在同一个Docker容器中,所以相应环境的默认服务地址就是localhost:port,而构建该镜像时默认所有环境的服务就是使用localhost,因此可以省略给Portal配置对应环境服务地址。

version: '2'
services:
  apollo-all-in-one:
    container_name: apollo-all-in-one
    image: idoop/docker-apollo:latest
    restart: on-failure
    # 暂时只能用 "host"模式,否则将出现504错误
    network_mode: "host"
    environment:
      # 开启Potal,配置MySQL地址与账户密码
      # 配置数据库ServerConfig表apollo.portal.envs字段值为要开启的环境,这里是:dev,fat,uat
      PORTAL_DB: jdbc:mysql://10.0.0.8:3306/ApolloPortalDB?characterEncoding=utf8
      PORTAL_DB_USER: root
      PORTAL_DB_PWD: password

      # 开启Dev环境,默认端口Admin:8090,Config:8080
      # 配置数据库ServerConfig表eureka.service.url字段值为http://localhost:8080/eureka/
      DEV_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBDev?characterEncoding=utf8
      DEV_DB_USER: root
      DEV_DB_PWD: password

      # 开启Fat环境,默认端口Admin:8091,Config:8081
      # 配置数据库ServerConfig表eureka.service.url字段值为http://localhost:8081/eureka/
      FAT_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBFat?characterEncoding=utf8
      FAT_DB_USER: root
      FAT_DB_PWD: password
     
      # 开启Uat环境,可以自定义一下Uat环境的端口
      # 配置数据库ServerConfig表eureka.service.url字段值为http://localhost:1000/eureka/
      UAT_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBUat?characterEncoding=utf8
      UAT_DB_USER: root
      UAT_DB_PWD: password
      UAT_ADMIN_PORT: 2000
      UAT_CONFIG_PORT: 1000

2.分布部署

部署1个Portal,多个Dev环境服务和多个Fat环境服务,并假设IP10.0.1.99开Nginx的80和90端口给dev环境做负载均衡,开8081和8091端口给fat环境做负载均衡.

Dev的docker-compose配置,放在多个服务器上启动. 配置对应数据库中ServerConfigeureka.service.url字段值为http://10.0.1.99:80/eureka/

version: '2'
services: 
  apollo-dev:
    image: idoop/docker-apollo:latest
    restart: on-failure
    network_mode: host
    environment:
      DEV_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBDev?characterEncoding=utf8
      DEV_DB_USER: root
      DEV_DB_PWD: password
      # DEV环境若不修改端口,则config默认就是8080,admin是8090
      DEV_ADMIN_PORT: 90
      DEV_CONFIG_PORT: 80
      # 这里用域名也可以,但要保证能被正常解析出IP.
      DEV_IP: 10.0.1.99

Fat的docker-compose配置,放在多个服务器上启动. 配置对应数据库中ServerConfigeureka.service.url字段值为http://10.0.1.99:8081/eureka/

version: '2'
services:
  apollo-fat:
    image: idoop/docker-apollo:latest
    restart: on-failure
    network_mode: host
    environment:
      FAT_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBFat?characterEncoding=utf8
      FAT_DB_USER: root
      FAT_DB_PWD: password
      # FAT环境若不修改端口,则config默认就是8081,admin是8091
      # 这里用域名也可以,但要保证能被正常解析出IP.
      FAT_IP: 10.0.1.99

部署Portal

version: '2'
services:
  portal:
    container_name: apollo-portal
    image: idoop/docker-apollo:latest
    restart: on-failure
    network_mode: host
    environment:
      # 配置数据库ServerConfig表apollo.portal.envs字段值为要开启的环境,这里是:dev,fat
      PORTAL_DB: jdbc:mysql://10.0.0.8:3306/ApolloPortalDB?characterEncoding=utf8
      PORTAL_DB_USER: root
      PORTAL_DB_PWD: password
      DEV_URL: http://10.0.1.99
      FAT_URL: http://10.0.1.99:8081

3.云上部署环境 线下部署Potal

云上部署的情况和分布式部署大同小异,只是因为线下部署Potal需要做一点需要改变。

类似阿里云这样的可能是通过弹性IP访问云上的Apollo服务,那么需要配置数据库中的ServerConfigeureka.service.url字段值为弹性IP地址与端口,并在弹性IP绑定的ECS上的docker容器启动时传入环境地址,即Pro环境服务就将PRO_IP设置为弹性IP地址,且只用修改弹性IP绑定的那台ECS的docker容器即可,其他已经运行中的服务可以不用改.

弹性IP地址也可以用域名替换

云上Pro环境部署配置,假设弹性IP为1.1.1.1

version: '2'
services:
  apollo-pro
    image: idoop/docker-apollo:latest
    restart: on-failure
    network_mode: host
    environment:
      PRO_DB: jdbc:mysql://xxx.xxx.com:3306/ApolloConfigDB?characterEncoding=utf8
      PRO_DB_USER: root
      PRO_DB_PWD: password
      # Pro环境若不修改端口,则config默认就是8083,admin是8093
      # 可以只在弹性IP绑定的那个ECS上配置.
      PRO_IP: 1.1.1.1

线下Portal

version: '2'
services:
  apollo-portal
    image: idoop/docker-apollo:latest
    restart: on-failure
    network_mode: host
    environment:
      PORTAL_DB: jdbc:mysql://10.0.0.8:3306/ApolloPortalDB?characterEncoding=utf8
      PORTAL_DB_USER: root
      PORTAL_DB_PWD: password
      PRO_URL: http://1.1.1.1:8083
Clone this wiki locally