Docker image for Ctrip/Apollo(携程Apollo)
本镜像包含Portal面板,以及Dev/Fat/Uat/Pro环境服务(All in one),皆可独立使用,支持分布式部署和Kubernetes部署.
1.9.0
latest
1.8.0
1.8.1
1.8.2
1.7.0
1.7.1
1.7.2
1.6.1
1.6.2
1.5.0
1.5.1
1.4.0
1.3.0
1.2.0
1.1.1
1.1.2
1.0.0
0.10.2
0.11.0
假设想要开启Protal/Dev/Fat,那么建立一个docker-compose.yaml
文件,内容大致如下所示,只需将mysql数据库地址与库名以及账号密码替换为自己的,并配置好数据库:
version: '2.2'
services:
apollo:
image: idoop/docker-apollo:latest
# portal若出现504错误,则将网络模式改为host. host模式下如果想改端口,参考下方修改端口的环境变量
# network_mode: "host"
# volumes:
# 如果需要查看日志,挂载容器中的/opt路径出来即可.
# - ./logs:/opt
# 如果portal需要开启ldap或ad域验证,须挂载此ldap配置文件
# - ./application-ldap.yml:/apollo-portal/config/application-ldap.yml:ro
environment:
# 开启Portal实例,默认端口: 8070
PORTAL_DB: jdbc:mysql:https://192.168.1.28:3306/ApolloPortalDB?characterEncoding=utf8
PORTAL_DB_USER: root
PORTAL_DB_PWD: toor
# 如果portal需要开启ldap或ad域验证,须设置该环境变量为TRUE
#PORTAL_LDAP: "TRUE"
# 开启dev环境实例, 默认端口: config 8080, admin 8090
DEV_DB: jdbc:mysql:https://192.168.1.28:3306/ApolloConfigDBDev?characterEncoding=utf8
DEV_DB_USER: root
DEV_DB_PWD: toor
# 开启fat环境实例, 默认端口: config 8081, admin 8091
FAT_DB: jdbc:mysql:https://192.168.1.28:3306/ApolloConfigDBFat?characterEncoding=utf8
FAT_DB_USER: root
FAT_DB_PWD: toor
# 若network_mode为host,则可修改端口,如下:
#FAT_CONFIG_PORT: 8050
#FAT_ADMIN_PORT: 8051
# 给Portal指定远程uat地址
#UAT_URL: https://192.168.1.2:8080
# 给Portal指定远程pro地址
#PRO_URL: https://www.example.com:8080
启动前确认对应的数据库已建立,且数据库账号有权操作该库,否则将会启动失败.创建数据库指导
Apollo为Java程序,所以镜像启动慢,且耗内存,因此有多开服务环境需求的请注意小鸡的内存是否够用.
测试机配置为4U8G, CPU为2.6GHz的x5650:
只启动Portal实例,用时20s,占内存280M.
Portal+dev(admin+config),用时90s,占内存999M.
Portal+dev+fat,用时154s,占内存1674M.
Protal+dev+fat+uat,自行估算.
Protal+dev+fat+uat+pro,自行估算.
若要开启相应服务,只需配置对应环境的env的数据库地址与账号密码,数据库密码不能为空。
- ONLY_CONFIG: 若是分布式部署或是kubernetes中部署,可配置值为
TRUE
,使得容器中只启动config服务,节省内存资源.详细用法参考wiki.
Portal 实例接受参数:
- PORTAL_DB: portal 的数据库地址, 未设置则代表不开启该服务
- PORTAL_DB_USER: 数据库用户
- PORTAL_DB_PWD: 数据库密码
- PORTAL_PORT: portal服务的端口,默认8070.若网络模式为host,可更改.
- PORTAL_LDAP: 若要开启LDAP登录验证,设置该值为TRUE,并挂载配置文件到
/apollo-portal/config/application-ldap.yml
容器中,详情参考官方说明.- DEV_URL: 远程dev服务,格式为https://ip:port 或 domain:port 不可与DEV_DB同时指定,数据库中ServerConfig中eureka.service.url的地址与端口需正确.
- FAT_URL: 远程fat服务,格式为https://ip:port 或 domain:port 不可与FAT_DB同时指定,数据库中ServerConfig中eureka.service.url的地址与端口需正确.
- UAT_URL: 远程uat服务,格式为https://ip:port 或 domain:port 不可与UAT_DB同时指定,数据库中ServerConfig中eureka.service.url的地址与端口需正确.
- PRO_URL: 远程pro服务,格式为https://ip:port 或 domain:port 不可与PRO_DB同时指定,数据库中ServerConfig中eureka.service.url的地址与端口需正确.
Dev 实例接受参数:
- DEV_LB: 若使用分布式负载均衡,则输入负载均衡地址,格式为IP或域名.
- DEV_DB: dev 环境数据库地址, 未设置则代表不开启该服务
- DEV_DB_USER: 数据库用户
- DEV_DB_PWD: 数据库密码
- DEV_ADMIN_PORT: admin服务端口,默认8090,若网络模式为host,可指定更改.
- DEV_CONFIG_PORT: config服务端口,默认8080,若网络模式为host,可指定更改,需要与本数据库中的ServerConfig中eureka.service.url端口相同.
Fat 实例接受参数:
- FAT_LB: 若使用分布式负载均衡,则输入负载均衡地址,,格式为IP或域名.
- FAT_DB: fat 环境数据库地址, 未设置则代表不开启该服务
- FAT_DB_USER: 数据库用户
- FAT_DB_PWD: 数据库密码
- FAT_ADMIN_PORT: admin服务端口,默认8091.若网络模式为host,可指定更改.
- FAT_CONFIG_PORT: config服务端口,默认8081.若网络模式为host,可指定更改,需要与本数据库中的ServerConfig中eureka.service.url端口相同.
Uat 实例接受参数:
- UAT_LB: 若使用分布式负载均衡,则输入负载均衡地址,,格式为IP或域名.
- UAT_DB: uat 环境数据库地址, 未设置则代表不开启该服务
- UAT_DB_USER: 数据库用户
- UAT_DB_PWD: 数据库密码
- UAT_ADMIN_PORT: admin服务端口,默认8092.若网络模式为host,可指定更改.
- UAT_CONFIG_PORT: config服务端口,默认8082.若网络模式为host,可指定更改,需要与本数据库中的ServerConfig中eureka.service.url端口相同.
Pro 实例接受参数:
- PRO_LB: 若使用分布式负载均衡,则输入负载均衡地址,,格式为IP或域名.
- PRO_DB: pro 环境数据库地址, 未设置则代表不开启该服务
- PRO_DB_USER: 数据库用户
- PRO_DB_PWD: 数据库密码
- PRO_ADMIN_PORT: admin服务端口,默认8093.若网络模式为host,可指定更改.
- PRO_CONFIG_PORT: config服务端口,默认8083.若网络模式为host,可指定更改,需要与本数据库中的ServerConfig中eureka.service.url端口相同.
详细用例请看Wiki
The project is licensed under the Apache 2 license.