-
Notifications
You must be signed in to change notification settings - Fork 82
Home
Welcome to the docker-apollo wiki!
[TOC]
即开启包括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: always
# 如果portal出现504错误,则使用"host"模式
# 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
部署1个Portal,多个Dev环境服务和多个Fat环境服务,并假设IP10.0.1.99
开Nginx的80和90端口给dev环境做负载均衡,开8081和8091端口给fat环境做负载均衡.
Dev的docker-compose
配置,放在多个服务器上启动.
配置对应数据库中ServerConfig
表eureka.service.url
字段值为http://10.0.1.99:80/eureka/
version: '2'
services:
apollo-dev:
image: idoop/docker-apollo:latest
restart: always
ports:
- "80:8080"
- "80:8090"
environment:
DEV_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBDev?characterEncoding=utf8
DEV_DB_USER: root
DEV_DB_PWD: password
# 这里用域名也可以,但要保证能被正常解析出IP.
DEV_LB: 10.0.1.99
Fat的docker-compose
配置,放在多个服务器上启动.
配置对应数据库中ServerConfig
表eureka.service.url
字段值为http://10.0.1.99:8081/eureka/
version: '2'
services:
apollo-fat:
image: idoop/docker-apollo:latest
restart: always
ports:
- "8081:8081"
- "8091:8091"
environment:
FAT_DB: jdbc:mysql://10.0.0.8:3306/ApolloConfigDBFat?characterEncoding=utf8
FAT_DB_USER: root
FAT_DB_PWD: password
# 这里用域名也可以,但要保证能被正常解析出IP.
FAT_IP: 10.0.1.99
部署Portal
version: '2'
services:
portal:
container_name: apollo-portal
image: idoop/docker-apollo:latest
restart: always
# portal容易出现504错误,可以直接"host"模式
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
云上部署的情况和分布式部署大同小异,只是因为线下部署Potal需要做一点需要改变。
类似阿里云这样的可能是通过弹性IP访问云上的Apollo服务,那么需要配置数据库中的
ServerConfig
表eureka.service.url
字段值为弹性IP地址与端口,并在弹性IP绑定的ECS上的docker容器启动时传入环境地址,即Pro环境服务就将PRO_LB
设置为弹性IP地址,且只用修改弹性IP绑定的那台ECS的docker容器即可,其他已经运行中的服务可以不用改.弹性IP地址也可以用域名替换
云上Pro环境部署配置,假设弹性IP为1.1.1.1
。
version: '2'
services:
apollo-pro
image: idoop/docker-apollo:latest
restart: always
# Pro环境端口config默认就是8083,admin是8093
ports:
- "8083:8083"
- "8093:8093"
environment:
PRO_DB: jdbc:mysql://xxx.xxx.com:3306/ApolloConfigDB?characterEncoding=utf8
PRO_DB_USER: root
PRO_DB_PWD: password
# 可以只在弹性IP绑定的那个ECS上配置.
PRO_LB: 1.1.1.1
线下Portal
version: '2'
services:
apollo-portal
image: idoop/docker-apollo:latest
restart: always
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