Apollo 1.7.0版本开始会默认上传Docker镜像到Docker Hub,可以按照如下步骤获取
一、获取镜像
1、Apollo Config Service
获取镜像
bash
docker pull apolloconfig/apollo-configservice:${version}
我事先下载过该镜像,所以跳过该步骤。
2、Apollo Admin Service
获取镜像:
bash
docker pull apolloconfig/apollo-adminservice:${version}
3、Apollo Portal
获取镜像
bash
docker pull apolloconfig/apollo-portal:${version}
二、修改数据库
- 修改数据库数据: ApolloPortalDB.ServerConfig organizations = [{"orgId":"DEV","orgName":"DEV"},{"orgId":"TEST","orgName":"TEST"},{"orgId":"PRO","orgName":"PRO"}]
- 修改数据库数据:ApolloConfigDB.ServerConfig eureka.service.url = http://192.168.197.128:8080/eureka/
三、启动Apollo
创建apollo-docker-start.sh脚本文件:
bash
# apollo 版本
version=2.2.0
# config service db地址
db_cs_url=jdbc:mysql://192.168.230.1:3306/ApolloConfigDB?characterEncoding=utf8
db_cs_username=root
db_cs_password=root
# 对应cs的容器外可访问路径
cs_url=http://192.168.197.128:8060
# config service pro环境 db 地址
#db_cs_pro_url=jdbc:mysql://192.168.230.1:3306/ApolloConfigDB?characterEncoding=utf8
# 对应cs pro 的容器外可访问路径
#cs_pro_url=http://192.168.197.128:8061
# web
db_url=jdbc:mysql://192.168.230.1:3306/ApolloPortalDB?characterEncoding=utf8
db_username=root
db_password=root
function start(){
# 配置中心
docker run -p 8060:8080 \
-e SPRING_DATASOURCE_URL=${db_cs_url} \
-e SPRING_DATASOURCE_USERNAME=${db_cs_username} \
-e SPRING_DATASOURCE_PASSWORD=${db_cs_password} \
-e EUREKA_INSTANCE_HOME_PAGE_URL=${cs_url} \
-d -v /tmp/logs:/data/logs/cs \
--name apollo-cs \
apolloconfig/apollo-configservice:${version}
# 管理服务
docker run -p 8090:8090 \
-e SPRING_DATASOURCE_URL=${db_cs_url} \
-e SPRING_DATASOURCE_USERNAME=${db_cs_username} \
-e SPRING_DATASOURCE_PASSWORD=${db_cs_password} \
-d -v /tmp/logs:/data/logs/cs \
--name apollo-as \
apolloconfig/apollo-adminservice:${version}
#----------------------成产环境-----------------------------
# 配置中心
#docker run -p 8061:8080 \
# -e SPRING_DATASOURCE_URL=${db_cs_pro_url} \
# -e SPRING_DATASOURCE_USERNAME=${db_cs_username} \
# -e SPRING_DATASOURCE_PASSWORD=${db_cs_password} \
# -e EUREKA_INSTANCE_HOME_PAGE_URL=${cs_pro_url} \
# -d -v /tmp/logs:/data/logs/cs \
# --name apollo-cs1 \
# apolloconfig/apollo-configservice:${version}
# 管理服务
#docker run -p 8091:8090 \
# -e SPRING_DATASOURCE_URL=${db_cs_pro_url} \
# -e SPRING_DATASOURCE_USERNAME=${db_cs_username} \
# -e SPRING_DATASOURCE_PASSWORD=${db_cs_password} \
# -d -v /tmp/logs:/data/logs/cs \
# --name apollo-as1 \
# apolloconfig/apollo-adminservice:${version}
# WEB
docker run -p 8070:8070 \
-e SPRING_DATASOURCE_URL=${db_url} \
-e SPRING_DATASOURCE_USERNAME=${db_username} \
-e SPRING_DATASOURCE_PASSWORD=${db_password} \
-e APOLLO_PORTAL_ENVS=TEST,PRO \
-e TEST_META=${cs_url} \
-e PRO_META=${cs_pro_url} \
-d -v /tmp/logs:/data/logs/portal --name apollo-portal \
apolloconfig/apollo-portal:${version}
}
start
# 删除容器脚本
# docker ps |grep apollo |awk '{ print $1}' | xargs docker rm -f
执行脚本:
bash
./apollo-docker-start.sh
查看启动日志: