Docker Compose 部署携程 Apollo
Operating System:Ubuntu 18.04.6 LTS
Kernel:Linux 4.15.0-169-generic
Architecture:x86-64
获取 Apollo Config Service 镜像
1
| root@ubuntu:~# docker pull apolloconfig/apollo-configservice:latest
|
获取 Apollo Admin Service 镜像
1
| root@ubuntu:~# docker pull apolloconfig/apollo-adminservice:latest
|
获取 Apollo Protal 镜像
1
| root@ubuntu:~# docker pull apolloconfig/apollo-portal:latest
|
验证
1 2 3 4
| root@ubuntu:~# docker images |grep apollo apolloconfig/apollo-portal latest d8f979fd9631 5 months ago 160MB apolloconfig/apollo-adminservice latest 2934fe191aa5 5 months ago 176MB apolloconfig/apollo-configservice latest faf09bfd7daf 5 months ago 180MB
|
创建挂载目录
1
| root@ubuntu:~# mkdir -p apollo/configservice/conf apollo/configservice/logs apollo/adminservice/conf apollo/adminservice/logs apollo/portal/conf apollo/portal/logs
|
初始化数据库
1
| source /your_local_path/scripts/sql/apolloconfigdb.sql
|
1
| source /your_local_path/scripts/sql/apolloportaldb.sql
|
修改启动文件
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
| configservice: image: apolloconfig/apollo-configservice:latest container_name: configservice ports: - 7901:7901 volumes: - /opt/apollo/configservice/logs:/opt/logs:rw - /opt/apollo/configservice/conf:/opt/conf:rw - /etc/localtime:/etc/localtime:ro network_mode: host restart: always environment: - SERVER_PORT=7901 - SPRING_DATASOURCE_URL=jdbc:mysql://172.11.0.2:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=root depends_on: - mysql deploy: update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure adminservice: image: apolloconfig/apollo-adminservice:latest container_name: adminservice ports: - 7902:7902 volumes: - /opt/apollo/adminservice/logs:/opt/logs:rw - /opt/apollo/adminservice/conf:/opt/conf:rw - /etc/localtime:/etc/localtime:ro network_mode: host restart: always environment: - SERVER_PORT=7902 - SPRING_DATASOURCE_URL=jdbc:mysql://172.11.0.2:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=root depends_on: - configservice deploy: update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure portal: image: apolloconfig/apollo-portal:latest container_name: portal ports: - 7903:7903 volumes: - /opt/apollo/portal/logs:/opt/logs:rw - /opt/apollo/portal/conf:/opt/conf:rw - /etc/localtime:/etc/localtime:ro network_mode: host restart: always environment: - SERVER_PORT=7903 - SPRING_DATASOURCE_URL=jdbc:mysql://172.11.0.2:3306/ApolloPortalDB?characterEncoding=utf8&useSSL=false - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=root - APOLLO_PORTAL_ENVS=dev - DEV_META=http://<公网ip>:7901 depends_on: - configservice - adminservice deploy: update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure
|
注意
开放所有端口
configservice
服务中包含了 Eureka
所以它的端口必须开放给其他服务
adminservice
服务提供了配置的查询、更新等等操作,
portal
服务是 Apollo 的配置页面所以端口也是需要开放的
云环境部署
ApolloConfigDB.ServerConfig
中增加配置 eureka.instance.ip-address:<公网ip>