# Apollo集群
# 关键字说明
- 绿色字体代表已完成
- 红色字体代表待完成
# 实验明细
- 配置
- 运行
- 集成
# 启动前准备
mkdir apollo
cd apollo
mkdir -p apollo-db/init
curl -o apollo-db/init/apolloconfigdb.sql https://oss.odboy.cn/blog/files/20029/apolloconfigdb.sql
curl -o apollo-db/init/apolloportaldb.sql https://oss.odboy.cn/blog/files/20029/apolloportaldb.sql
1
2
3
4
5
2
3
4
5
# docker-compose.yaml
version: '3'
services:
apollo-db:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:mysql-5.7.44
container_name: apollo-db
restart: unless-stopped
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 'mysql123456'
ports:
- "13306:3306"
volumes:
- ./apollo-db/init:/docker-entrypoint-initdb.d
- ./apollo-db/data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
interval: 5s
timeout: 1s
retries: 10
apollo-configservice:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:apollo-configservice-2.3.0
container_name: apollo-configservice
restart: unless-stopped
depends_on:
apollo-db:
condition: service_healthy
links:
- apollo-db
ports:
- "8080:8080"
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://apollo-db:3306/ApolloConfigDB?characterEncoding=utf8 # 对应环境ApolloConfigDB的地址
SPRING_DATASOURCE_USERNAME: root # 对应环境ApolloConfigDB的账号
SPRING_DATASOURCE_PASSWORD: mysql123456 # 对应环境ApolloConfigDB的密码
volumes:
- "./apollo-configservice/logs:/opt/logs"
apollo-adminservice:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:apollo-adminservice-2.3.0
container_name: apollo-adminservice
restart: unless-stopped
depends_on:
apollo-db:
condition: service_healthy
links:
- apollo-db
- apollo-configservice
ports:
- "8090:8090"
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://apollo-db:3306/ApolloConfigDB?characterEncoding=utf8 # 对应环境ApolloConfigDB的地址
SPRING_DATASOURCE_USERNAME: root # 对应环境ApolloConfigDB的账号
SPRING_DATASOURCE_PASSWORD: mysql123456 # 对应环境ApolloConfigDB的密码
volumes:
- "./apollo-adminservice/logs:/opt/logs"
apollo-portal:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:apollo-portal-2.3.0
container_name: apollo-portal
restart: unless-stopped
depends_on:
apollo-db:
condition: service_healthy
links:
- apollo-db
- apollo-configservice
- apollo-adminservice
ports:
- "8070:8070"
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://apollo-db:3306/ApolloPortalDB?characterEncoding=utf8 # 对应环境ApolloPortalDB的地址
SPRING_DATASOURCE_USERNAME: root # 对应环境ApolloPortalDB的账号
SPRING_DATASOURCE_PASSWORD: mysql123456 # 对应环境ApolloPortalDB的密码
APOLLO_PORTAL_ENVS: dev,uat,pro
DEV_META: http://192.168.250.100:8080 # 配置对应环境的Meta Service(apollo-configservice)地址,以${ENV}_META命名,宿主机ip
# UAT_META: http://192.168.250.100:8080
# PRO_META: http://192.168.250.100:8080
volumes:
- "./apollo-portal/logs:/opt/logs"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# mac为127.0.0.1:8070,宿主机请使用宿主机的ip
http://127.0.0.1:8070
账号:apollo
密码:admin
1
2
3
4
5
2
3
4
5