Docker Compose 一键部署分布式配置中心Apollo的过程详解
Apollo是携程框架部门开发的一款分布式配置中心,支持多语言、多环境、多数据中心等特性。本文将介绍如何使用Docker Compose一键部署Apollo。
步骤一:创建Docker Compose文件
首先,我们需要创建一个Docker Compose文件,用于定义Apollo的各个组件。以下是一个示例Docker Compose文件:
version: '3'
services:
apollo-configservice:
image: apolloconfig/apollo-configservice
ports:
- "8080:8080"
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8
- SPRING_DATASOURCE_USERNAME=apollo
- SPRING_DATASOURCE_PASSWORD=apollo
- SPRING_PROFILES_ACTIVE=github
- GITHUB_URL=https://github.com/ctripcorp/apollo-configfiles.git
- GITHUB_SEARCH_PATH=/
- GITHUB_USERNAME=
- GITHUB_PASSWORD=
depends_on:
- mysql
restart: always
apollo-adminservice:
image: apolloconfig/apollo-adminservice
ports:
- "8090:8090"
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8
- SPRING_DATASOURCE_USERNAME=apollo
- SPRING_DATASOURCE_PASSWORD=apollo
- SPRING_PROFILES_ACTIVE=github
- GITHUB_URL=https://github.com/ctripcorp/apollo-configfiles.git
- GITHUB_SEARCH_PATH=/
- GITHUB_USERNAME=
- GITHUB_PASSWORD=
depends_on:
- mysql
restart: always
apollo-portal:
image: apolloconfig/apollo-portal
ports:
- "8070:8070"
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/ApolloPortalDB?characterEncoding=utf8
- SPRING_DATASOURCE_USERNAME=apollo
- SPRING_DATASOURCE_PASSWORD=apollo
- SPRING_PROFILES_ACTIVE=github
- GITHUB_URL=https://github.com/ctripcorp/apollo-configfiles.git
- GITHUB_SEARCH_PATH=/
- GITHUB_USERNAME=
- GITHUB_PASSWORD=
depends_on:
- mysql
restart: always
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=ApolloConfigDB
- MYSQL_USER=apollo
- MYSQL_PASSWORD=apollo
volumes:
- ./mysql-data:/var/lib/mysql
restart: always
在上面的示例中,我们定义了四个服务:configservice、adminservice、portal和mysql。其中,configservice、adminservice和portal分别对应Apollo的配置服务、管理服务和门户服务,mysql则是Apollo所需的数据库服务。
步骤二:启动Docker Compose
接下来,我们可以使用以下命令启动Docker Compose:
docker-compose up -d
在上面的示例中,我们使用-d参数将Docker Compose以后台模式启动。
步骤三:访问Apollo
一旦Docker Compose启动成功,我们就可以通过以下URL访问Apollo:
- 配置服务:http://localhost:8080
- 管理服务:http://localhost:8090
- 门户服务:http://localhost:8070
在访问门户服务时,我们需要使用以下默认账号和密码进行登录:
- 账号:apollo
- 密码:admin
示例一:使用本地配置文件
如果我们想使用本地配置文件而不是GitHub仓库中的配置文件,我们可以将Docker Compose文件中的以下环境变量:
- SPRING_PROFILES_ACTIVE=github
- GITHUB_URL=https://github.com/ctripcorp/apollo-configfiles.git
- GITHUB_SEARCH_PATH=/
- GITHUB_USERNAME=
- GITHUB_PASSWORD=
替换为以下环境变量:
- SPRING_PROFILES_ACTIVE=native
- SPRING_CONFIG_LOCATION=/apollo-configfiles/configs
然后,我们可以在本地创建一个名为/apollo-configfiles/configs的目录,并将Apollo的配置文件放置在该目录中。
示例二:使用Docker容器中的配置文件
如果我们想使用Docker容器中的配置文件,我们可以将Docker Compose文件中的以下环境变量:
- SPRING_PROFILES_ACTIVE=github
- GITHUB_URL=https://github.com/ctripcorp/apollo-configfiles.git
- GITHUB_SEARCH_PATH=/
- GITHUB_USERNAME=
- GITHUB_PASSWORD=
替换为以下环境变量:
- SPRING_PROFILES_ACTIVE=docker
然后,我们可以在Docker容器中创建一个名为/apollo-configfiles/configs的目录,并将Apollo的配置文件放置在该目录中。我们可以使用以下命令将配置文件复制到Docker容器中:
docker cp /path/to/configs apollo-configservice:/apollo-configfiles
docker cp /path/to/configs apollo-adminservice:/apollo-configfiles
docker cp /path/to/configs apollo-portal:/apollo-configfiles
在上面的示例中,我们将本地的配置文件复制到了三个Apollo服务的/apollo-configfiles目录中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker compose 一键部署分布式配置中心Apollo的过程详解 - Python技术站