Docker搭建Apollo配置中心
本文将介绍采用docker-compose方式安装Apollo配置中心(基于centos7,Apollo 1.6)
需要使用到以下工具
- Maven
- Git
- docker-compose
上述工具安装方式请参考相关工具的官方网站,根据自己的需要安装相应版本即可(so easy)。
废话不多进入正题
安装步骤
1.使用GIT拉取最新代码
截止文章编写日期2020-03-14,最新版本Apollo为1.6版本
下面给出携程Apollo的Git地址
码云-Apollo.
GitHub-Apollo.
根据网速随意选择一个仓库地址拉取最新代码即可
git clone https://gitee.com/lepdou/apollo.git
git clone https://github.com/ctripcorp/apollo.git
附上Apollo项目目录截图
2.修改scripts目录下编译脚本
修改build.sh 脚本(linux,Windows环境下使用git bash也可运行该sh脚本)
或者build.bat 脚本(Windows)
修改meta_server地址即可(数据库地址稍后使用docker-compose.yaml在构建镜像时进行设置)
3.运行上一步修改的build.sh脚本
./build.sh
依赖maven环境,若依赖下载速度过慢可修改maven配置文件中中央仓库地址,推荐使用阿里云地址。
<!-- 阿里云中央仓库 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
4.构建docker镜像准备工作
- 分别将apollo-adminservice,apollo-configservice,apollo-portal target目录下编译好的 xx-github.zip 复制到xx/src/main/docker/目录下
以apollo-adminservice为例:
apollo-adminservice/src/main/docker/
5.将docker-compose.yaml文件复制到,apollo根目录下
docker-compose.yaml文件并不存在与apollo的源码目录中,需要新建docker-compose.yaml并复制以下配置文件信息插入到该文件即可。
配置文件详情如下
version: "3"
services:
apollo-configservice:
container_name: apollo-configservice #
build: apollo-configservice/src/main/docker/ #dockerfile目录
image: apollo-configservice #镜像名
restart: always #异常重启
hostname: apollo-configservice #本次使用内网Ip,也可以使用桥接/host(与此处hostname冲突)
ports: #端口
- "8080:8080"
volumes: #挂载日志目录
- "/data/apollo/logs/configservice:/opt/logs/100003171"
environment: #数据库环境变量,在设置meta_server地址时并未设置,在构建镜像时设置即可
- spring_datasource_url=jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=root
apollo-adminservice:
container_name: apollo-adminservice
build: apollo-adminservice/src/main/docker/
image: apollo-adminservice
ports:
- "8090:8090"
restart: always
hostname: apollo-adminservice
depends_on: #启动依赖
- apollo-configservice
volumes:
- "/docker/apollo/logs/adminservice:/opt/logs/100003172"
environment:
- spring_datasource_url=jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=root
apollo-portal:
container_name: apollo-portal
build: apollo-portal/src/main/docker/
image: apollo-portal
ports:
- "8070:8070"
restart: always
hostname: apollo-portal
depends_on:
- apollo-adminservice
volumes:
- "/docker/apollo/logs/portal:/opt/logs/100003173"
environment:
- spring_datasource_url=jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=root
6.启动Apollo
运行docker-compose up -d 即可启动apollo-admin,apollo-config,apollo-protal 三个容器的日志均位于/data/apollo/logs目录下
docker-compose up -d
7.注意事项
- 截止2020.3.14最新1.6版本 apolloconfigdb添加了accesskey表切记迁移低版本数据的时候从最新的sql表中复制accesskey表的插入语句
- 若出现metaserver 地址为apollo.meta,并且配置了
apollo-portal的meta_server地址仍然无效的情况下,若只使用一个环境如dev可以通过则修改apollo\apollo-portal\src\main\java\com\ctrip\framework\apollo\portal\environment 中DEFAULT_SERVER变量实现,或者将docker-compose.yaml中网络模式采用桥接模式即可。 - 项目访问地址
a) apollo-admin
http://10.250.219.63:8090/
b)apollo-config
http://127.0.0.1:8080/
c)apollo-portal
http://127.0.0.1:8070/signin
用户名:apollo
密码:admin
以上就是Apollo配置中心搭建过程,有问题就留言讨论吧。
关于Apollo的使用方式建议查看Apollo wiki即可。
Stay hungry, Stay foolish。