- Apollo 最主要有三个工程,会用这三个工程进行部署:
- Portal:是管理界面,对应有一个PortalDB数据库,Portal是用来管理有几个环境的,不管对接了几个环境,Portal和PortalDB数据库只需要部署一份
- Config,Admin:每个环境都有一个Config和Admin,对应每个环境都有一个自己的ConfigDB库,如果用于生产,Config和Admin至少部署两套,才能保证服务的高可用.
一、数据库
首先部署docker mysql,创建用户并设置密码root
/123456789
创建数据库ApolloPortalDB
1.下载源码
ApolloPortalDB 数据库
如果有多个环境,要修改
ApolloPortalDB
库ServerConfig
表,不同环境之间用,
隔开,默认只有dev
ApolloConfigDB 数据库
如果每个环境只部署一套
config
和admin
,同时数据库也是在本机,所以默认的localhost
不用改,后面如果每个环境部署多台机器,localhost
需要修改成ip
地址
配置数据库连接信息和各环境meta service地址(只配置了dev)
二、Config Service
1.拉取镜像
docker pull apolloconfig/apollo-configservice
2.启动容器
docker run -d \
--name apollo-configservice \
--net=host \
-v /tmp/logs:/opt/logs \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=lyc123456 \
apolloconfig/apollo-configservice
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
三、Admin Service
1.拉取镜像
docker pull apolloconfig/apollo-adminservice
2.启动容器
docker run -d \
--name apollo-adminservice \
--net=host \
-v /tmp/logs:/opt/logs \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=lyc123456 \
apolloconfig/apollo-adminservice
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
四、Portal Server
1.拉取镜像
docker pull apolloconfig/apollo-portal
2.启动容器
docker run -d \
--name apollo-portal \
--net=host \
-v /tmp/logs:/opt/logs \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=lyc123456 \
-e APOLLO_PORTAL_ENVS=dev \
-e DEV_META=http://127.0.0.1:8080 \
apolloconfig/apollo-portal
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloPortalDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloPortalDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloPortalDB的密码
- APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
- DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,如果ApolloPortalDB中配置了apollo.portal.meta.servers,则以apollo.portal.meta.servers中的配置为准
访问127.0.01.:8070
账号:apollo
密码:admin
创建应用
如果启动容器报错,查看容器日志,很大可能是数据库连接SQL异常(账号密码错误)或者数据库没有创建apollo表,必须保证能正常访问数据库后重新启动容器。