部署说明
采用最新apollo-1.7.0版本,可以通过Docker Hub快速部署
参考文档:apollo/wiki/分布式部署指南#23-docker部署
部署依赖
依赖 | 说明 |
---|---|
MySQL | 版本要求:5.6.5+ |
Docker | 下载较慢可修改Docker Hub源,参考Docker Hub 镜像加速器 |
端口分配
服务 | 端口 |
---|---|
Apollo Config Service(配置中心) | 8080 |
Apollo Admin Service(后台服务) | 8090 |
Apollo Portal(前台服务) | 8070 |
部署步骤
创建数据库
数据库 | sql脚本 |
---|---|
ApolloPortalDB | apolloportaldb.sql |
ApolloConfigDB | apolloconfigdb.sql |
修改ApolloConfigDB数据库ServerConfig表的eureka.service.url=http://host.docker.internal:8080/eureka/
ps: host.docker.internal是docker内部域名。如果Apollo Config Service 和Apollo Admin Service不在同一个宿主机,需要调整为Apollo Config Service的主机url
Apollo Config Service(配置中心)
1.获取镜像
docker pull apolloconfig/apollo-configservice:1.7.0
2.运行镜像
docker run -p 8080:8080 --network={docker_network} \
-e SPRING_DATASOURCE_URL="jdbc:mysql://{db_url}:{db_port}/ApolloConfigDB?characterEncoding=utf8&serverTimezone=UTC" \
-e SPRING_DATASOURCE_USERNAME={db_username} \
-e SPRING_DATASOURCE_PASSWORD={db_password} \
-e EUREKA_INSTANCE_HOME_PAGE_URL=http://{eureka_home_url}:8080 \
-d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice:1.7.0
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
- EUREKA_INSTANCE_HOME_PAGE_URL: 配置中心主页url
需要修改参数:
-
{docker_network}: 自定义网卡,用于config、admin、portal三者通讯
-
{db_url}: 数据库地址
-
{db_port}: 数据库端口
-
{db_username}: 数据库用户名
-
{db_password}: 数据库密码
-
{eureka_home_url}: 配置中心主页url,需要在内网能访问到
Apollo Admin Service(后台服务)
1.获取镜像
docker pull apolloconfig/apollo-adminservice:1.7.0
2.运行镜像
docker run -p 8090:8090 --network={docker_network} \
-e SPRING_DATASOURCE_URL="jdbc:mysql://{db_url}:{db_port}/ApolloConfigDB?characterEncoding=utf8&serverTimezone=UTC" \
-e SPRING_DATASOURCE_USERNAME={db_username} \
-e SPRING_DATASOURCE_PASSWORD={db_password} \
-d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice:1.7.0
参数说明:
- SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
- SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
- SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
需要修改参数:
-
{docker_network}: 自定义网卡,用于config、admin、portal三者通讯
-
{db_url}: 数据库地址
-
{db_port}: 数据库端口
-
{db_username}: 数据库用户名
-
{db_password}: 数据库密码
Apollo Portal(前台服务)
1.获取镜像
docker pull apolloconfig/apollo-portal:1.7.0
2.运行镜像
docker run -p 8070:8070 --network={docker_network} \
-e SPRING_DATASOURCE_URL="jdbc:mysql://{db_url}:{db_port}/ApolloPortalDB?characterEncoding=utf8&serverTimezone=UTC" \
-e SPRING_DATASOURCE_USERNAME={db_username} \
-e SPRING_DATASOURCE_PASSWORD={db_password} \
-e APOLLO_PORTAL_ENVS=dev \
-e DEV_META=http://host.docker.internal:8080 \
-d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal:1.7.0
参数说明:
- 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中的配置为准
需要修改参数:
- {docker_network}: 自定义网卡,用于config、admin、portal三者通讯
- {db_url}: 数据库地址
- {db_port}: 数据库端口
- {db_username}: 数据库用户名
- {db_password}: 数据库密码
需要将Apollo Portal的127.0.0.1:8070暴露到内网域名便于访问
网友评论