本文主要介绍如何在通过docker部署Apollo,参考apollo官网: https://www.apolloconfig.com/#/zh/README
docker相关的初始化参见这里
1. 创建数据库
1.1 安装Mysql
参见这里
1.2 初始化Apollo
执行官方的db1的脚本:https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloportaldb.sql
再执行官方的db2的脚本:https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloconfigdb.sql
1.3 创建apollo的账号
1 2 3 4 5 6
| create user 'admin123'@'%' identified by 'admin123'; ALTER USER 'admin123'@'%' IDENTIFIED WITH mysql_native_password BY 'admin123'; GRANT ALL PRIVILEGES ON ApolloConfigDB.* TO 'admin123'@'%'; GRANT ALL PRIVILEGES ON ApolloPortalDB.* TO 'admin123'@'%'; flush privileges;
|
2. 部署实例
2.1 拉取镜像
docker pull apolloconfig/apollo-configservice:latest
docker pull apolloconfig/apollo-adminservice:latest
docker pull apolloconfig/apollo-portal:latest
2.2 启动镜像
启动三个镜像
1 2 3 4 5 6 7 8 9
|
docker run -p 8080:8080 -e TZ=Asia/Shanghai -e SPRING_DATASOURCE_URL="jdbc:mysql://数据库地址/ApolloConfigDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=账号 -e SPRING_DATASOURCE_PASSWORD=密码 -e EUREKA_INSTANCE_HOME_PAGE_URL="http://127.0.0.1:8080" -e EUREKA_INSTANCE_PREFER_IP_ADDRESS=false -e EUREKA_INSTANCE_IP_ADDRESS="192.168.1.11" -d --name apollo-configservice apolloconfig/apollo-configservice:latest docker run -p 8090:8090 -e TZ=Asia/Shanghai -e SPRING_DATASOURCE_URL="jdbc:mysql://数据库地址/ApolloConfigDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=账号 -e SPRING_DATASOURCE_PASSWORD=密码 -e EUREKA_INSTANCE_HOME_PAGE_URL="http://127.0.0.1:8090" -e EUREKA_INSTANCE_PREFER_IP_ADDRESS=false -e EUREKA_INSTANCE_IP_ADDRESS="192.168.1.11" -d --name apollo-adminservice apolloconfig/apollo-adminservice:latest
docker run -p 8070:8070 -e TZ=Asia/Shanghai -e SPRING_DATASOURCE_URL="jdbc:mysql://数据库地址/ApolloPortalDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=账号 -e SPRING_DATASOURCE_PASSWORD=密码 -e APOLLO_PORTAL_ENVS=dev -e DEV_META=http://apollo-config.alnk.top:8080 -d --name apollo-portal apolloconfig/apollo-portal:latest
|
在mysql里的ApolloConfigDB.ServerConfig表里,可以主动设置eureka.service.url
的地址
官方文档里有个参数-v /tmp/logs=/opt/logs
,也即是将容器里的logs目录挂载到物理机上,这里由于涉及到挂载的权限的问题,我们先不这么配置,如果你遇到了问题,可以通过:
docker logs <container_id>
很方便的就能看到容器里的各种问题。