Apollo-oracle-docker部署

时间:2021-08-13 02:41:28

1、前置准备工作

部署Apollo的目标服务器要求:
(1)Linux 发行版本建议CentOS7 (由于Apollo服务内置3个JVM进程 所有系统可用内存建议不低于2G)
(2)安装Oracle 版本10g (为Apollo部署Oracle服务,也可以借用已经部署好的Oracle服务)
(3)安装JDK 版本1.8
(4)安装Docker 版本1.13
(5)安装docker-compose

  1. yum -y install epel-release
  2. yum -y install python-pip
  3. pip install docker-compose

(6)安装unzip解压工具 yum install zip unzip
(7)服务器IP情况假设如下:

  1. Oracle部署所在服务器IP Oracle_IP(下文均通过这个来指代) ,实例名称为xe,两组用户apolloconfig/apolloapolloportal/apollo
  2. Apollo部署所在服务器IP Apollo_IP(下文均通过这个来指代)
  3. 特别注意:由于业务系统需要访问Apollo获取配置,如果Apollo_IP和业务系统不再一个局域网,那么Apollo_IP必须是外网IP,同理,由于Apollo需要访问Oracle,如果Oracle_IPApollo_IP不属于同一个局域网,Oracle_IP也必须是外网IP

2、下载Apollo初始安装文件apollo-oracle-docker.zip

3、本地解压初始安装文件,修改Apollo相关连接配置信息

解压后得到的文件目录为:
apollo-config
apollo-admin
apollo-portal
sql
docker-compose.yml

(1)修改docker-compose.yml

替换其中的Oracle_IP、SID、Apollo_IP

  1. version: "3"
  2. services:
  3. apollo-config: ##容器服务名
  4. container_name: apollo-config ##容器名
  5. build: apollo-config/ ##Dockerfile路径
  6. image: apollo-config ##镜像名
  7. ports:
  8. - "8847:8847"
  9. volumes:
  10. - "/opt/logs/100003171:/opt/logs/100003171" ##将容器中应用日志挂载到宿主机的/opt/logs/100003171方便在宿主机上查看日志
  11. environment:
  12. - spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521/SID
  13. - spring_datasource_username=apolloconfig
  14. - spring_datasource_password=apollo
  15. - JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
  16. apollo-admin:
  17. container_name: apollo-admin
  18. build: apollo-admin/
  19. image: apollo-admin
  20. ports:
  21. - "8090:8090"
  22. depends_on:
  23. - apollo-config
  24. volumes:
  25. - "/opt/logs/100003172:/opt/logs/100003172"
  26. environment:
  27. - spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521/SID
  28. - spring_datasource_username=apolloconfig
  29. - spring_datasource_password=apollo
  30. apollo-portal:
  31. container_name: apollo-portal
  32. build: apollo-portal/
  33. image: apollo-portal
  34. ports:
  35. - "8070:8070"
  36. depends_on:
  37. - apollo-admin
  38. volumes:
  39. - "/opt/logs/100003173:/opt/logs/100003173"
  40. environment:
  41. - spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521/SID
  42. - spring_datasource_username=apolloportal
  43. - spring_datasource_password=apollo
  44. - JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847

(2)导入sql数据库脚本 — 参见《Apollo-oracle-普通部署实施》中的第4点

  1. 相比普通部署,docker部署这里导入SQL后需要到ApolloConfigDB找到"ServerConfig"表将eureka.service.url的值修改为http://Apollo_IP:8847/eureka/

4、使用SFTP工具将修改并重新压缩后的apollo-oracle-docker.zip上传到目标Linux服务器指定目录如/home/apollo下,然后在该目录下依次运行如下命令:

(1)unzip apollo-oracle-docker.zip
(2)docker-compose up -d

等待并观察日志输出(大概5分钟),若为如下则启动成功:

Apollo-oracle-docker部署

  1. 特别说明:看到上述日志输出说明启动命令执行成功,但是Apollo服务访问还需要等待一段时间(再耐心等待几分钟)

5、启动成功浏览器中http://Apollo_IP:8070访问Apollo配置中心 默认dongzs/dongzs登录(该账户下已经包含所有项目运行需要的相关配置 登录后进行相应的配置修改即可满足项目运行需要)
Apollo-oracle-docker部署

6、执行 docker-compose down 可以关闭Apollo服务

=================================================================

7、基于Docker镜像的部署安装:

(1)apolloconfig的启动
docker run -d
-e spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521:SID
-e spring_datasource_username=apolloconfig
-e spring_datasource_password=apollo
-e JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
-p 8847:8847
-v /opt/logs/100003171:/opt/logs/100003171
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloconfig-ora:1.2.0

(2)apolloadmin的启动
docker run -d
-e spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521:SID
-e spring_datasource_username=apolloconfig
-e spring_datasource_password=apollo
-p 8090:8090
-v /opt/logs/100003172:/opt/logs/100003172
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloadmin-ora:1.2.0

(3)apolloportal的启动
docker run -d
-e spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521:SID
-e spring_datasource_username=apolloportal
-e spring_datasource_password=apollo
-e JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847
-p 8070:8070
-v /opt/logs/100003173:/opt/logs/100003173
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloportal-ora:1.2.0