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
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
(6)安装unzip解压工具 yum install zip unzip
(7)服务器IP情况假设如下:
Oracle部署所在服务器IP为 Oracle_IP(下文均通过这个来指代) ,实例名称为xe,两组用户apolloconfig/apollo和apolloportal/apollo
Apollo部署所在服务器IP为 Apollo_IP(下文均通过这个来指代)
特别注意:由于业务系统需要访问Apollo获取配置,如果Apollo_IP和业务系统不再一个局域网,那么Apollo_IP必须是外网IP,同理,由于Apollo需要访问Oracle,如果Oracle_IP和Apollo_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
version: "3"
services:
apollo-config: ##容器服务名
container_name: apollo-config ##容器名
build: apollo-config/ ##Dockerfile路径
image: apollo-config ##镜像名
ports:
- "8847:8847"
volumes:
- "/opt/logs/100003171:/opt/logs/100003171" ##将容器中应用日志挂载到宿主机的/opt/logs/100003171方便在宿主机上查看日志
environment:
- spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521/SID
- spring_datasource_username=apolloconfig
- spring_datasource_password=apollo
- JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
apollo-admin:
container_name: apollo-admin
build: apollo-admin/
image: apollo-admin
ports:
- "8090:8090"
depends_on:
- apollo-config
volumes:
- "/opt/logs/100003172:/opt/logs/100003172"
environment:
- spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521/SID
- spring_datasource_username=apolloconfig
- spring_datasource_password=apollo
apollo-portal:
container_name: apollo-portal
build: apollo-portal/
image: apollo-portal
ports:
- "8070:8070"
depends_on:
- apollo-admin
volumes:
- "/opt/logs/100003173:/opt/logs/100003173"
environment:
- spring_datasource_url=jdbc:oracle:thin:@Oracle_IP:1521/SID
- spring_datasource_username=apolloportal
- spring_datasource_password=apollo
- JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847
(2)导入sql数据库脚本 — 参见《Apollo-oracle-普通部署实施》中的第4点
相比普通部署,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服务访问还需要等待一段时间(再耐心等待几分钟)
5、启动成功浏览器中http://Apollo_IP:8070访问Apollo配置中心 默认dongzs/dongzs登录(该账户下已经包含所有项目运行需要的相关配置 登录后进行相应的配置修改即可满足项目运行需要)
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