在一个Docker容器中部署Dev和Pro双配置环境。
应用镜像:https://hub.docker.com/r/idoop/docker-apollo/
里面说明很清晰,不过有些地方需要我们部署后手工调整,很坑啊。
一、创建数据库和表
参考:官方文档
创建三个数据库:
然后分别通过官方的sql建立表结构
二、创建Docker容器
经验证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默认密码
新版本可以在界面中进行修改了,进入用户管理界面:
官方文档中写的很明确,update or create,也就是用户名已存在的会进行更新。我们直接填写apollo,然后修改为新密码即可。
2.配置部门列表
修改ApolloPortalDB数据库,表ServerConfig的organizations字段:
3.调整Pro的Eureka连接地址(很坑的一个地方)
默认的话都会连接到8080的Eureka上,这样会出问题的,配置混乱。
我们修改数据库ApolloConfigDBPro中的ServerConfig表里面的eureka.service.url字段
可以看到默认为8080,我们修改为8083即可。
我们重启容器服务,然后可以验证一下:
访问8080端口和8083端口,看到都是对应的就说明配置正确了。