在一个Docker容器中部署Dev和Pro双配置环境。
应用镜像:https://hub.docker.com/r/idoop/docker-apollo/
里面说明很清晰,不过有些地方需要我们部署后手工调整,很坑啊。
一、创建数据库和表
参考:官方文档
创建三个数据库:
![76c10a93929d14fb68f41f7052a05370bbd.jpg]()
然后分别通过官方的sql建立表结构
二、创建Docker容器
![91b152b4813b538c54d921d4a1b4dce5394.jpg]()
经验证Network可以使用bridge桥接模式。
配置容器的ENV环境变量:
# 开启Portal,默认端口: 8070
PORTAL_DB: jdbc:mysql://192.168.1.28:3306/ApolloPortalDB?characterEncoding=utf8
PORTAL_DB_USER: root
PORTAL_DB_PWD: toor
# 开启dev环境, 默认端口: config 8080, admin 8090
DEV_DB: jdbc:mysql://192.168.1.28:3306/ApolloConfigDBDev?characterEncoding=utf8
DEV_DB_USER: root
DEV_DB_PWD: toor
# 开启pro环境, 默认端口: config 8083, admin 8093
DEV_DB: jdbc:mysql://192.168.1.28:3306/ApolloConfigDBPro?characterEncoding=utf8
DEV_DB_USER: root
DEV_DB_PWD: toor
我们都采用默认端口,注意不要跟其他容器端口冲突。
然后我们就启动容器吧。
三、调整配置
1.修改apollo默认密码
新版本可以在界面中进行修改了,进入用户管理界面:
![47664fee595202b7c9eed6028893f1a2a39.jpg]()
官方文档中写的很明确,update or create,也就是用户名已存在的会进行更新。我们直接填写apollo,然后修改为新密码即可。
2.配置部门列表
修改ApolloPortalDB数据库,表ServerConfig的organizations字段:
![5447e29e2eb3dfdaa94d417ce77e319df45.jpg]()
3.调整Pro的Eureka连接地址(很坑的一个地方)
默认的话都会连接到8080的Eureka上,这样会出问题的,配置混乱。
我们修改数据库ApolloConfigDBPro中的ServerConfig表里面的eureka.service.url字段
可以看到默认为8080,我们修改为8083即可。
![8f58133f77ada4cc3b675339b746e952fa5.jpg]()
我们重启容器服务,然后可以验证一下:
访问8080端口和8083端口,看到都是对应的就说明配置正确了。
![6047fd83a40b3e3b06331adc0a3187e9bd6.jpg]()
![37b88a9d580faeddf240978d3bca9288ae5.jpg]()