您的位置:首页 > 博客中心 > 数据库 >

Apollo-mysql-docker部署

时间:2022-03-06 22:19

1、前置准备工作

部署Apollo的目标服务器要求:
(1)Linux 发行版本建议CentOS7 (由于Apollo服务内置3个JVM进程 所有系统可用内存建议不低于2G)
(2)安装MySQL 版本5.6.5+(为Apollo部署MySQL服务,也可以借用已经部署好的MySQL服务)
(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. MySQL部署所在服务器IP为 MySQL_IP(下文均通过这个来指代) 假设MySQL登录用户名密码为root/123456
  2. Apollo部署所在服务器IP为 Apollo_IP(下文均通过这个来指代)
  3. 特别注意:由于业务系统需要访问Apollo获取配置,如果Apollo_IP和业务系统不再一个局域网,那么Apollo_IP必须是外网IP,同理,由于Apollo需要访问MySQL,如果MySQL_IP和Apollo_IP不属于同一个局域网,MySQL_IP也必须是外网IP

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

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

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

(1)修改docker-compose.yml

替换其中的MySQL_IP和Apollo_IP、设置spring_datasource_username和spring_datasource_password(即对应的MySQL登录用户名和密码)

  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:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
  13. - spring_datasource_username=root
  14. - spring_datasource_password=123456
  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:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
  28. - spring_datasource_username=root
  29. - spring_datasource_password=123456
  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:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
  42. - spring_datasource_username=root
  43. - spring_datasource_password=123456
  44. - JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847

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

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

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

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

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

技术图片

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

5、启动成功浏览器中 默认dongzs/dongzs登录(该账户下已经包含所有项目运行需要的相关配置 登录后进行相应的配置修改即可满足项目运行需要)
技术图片

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

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

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

(1)apolloconfig的启动
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-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:1.5.0

(2)apolloadmin的启动
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-p 8090:8090
-v /opt/logs/100003172:/opt/logs/100003172
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloadmin:1.5.0

(3)apolloportal的启动
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-e JAVA_OPTS=-Dpro_meta=
-p 8070:8070
-v /opt/logs/100003173:/opt/logs/100003173
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloportal:1.5.0

说明1:上面(1)(3)中JAVA_OPTS后面指定的Apollo_IP必须为前面(1)apolloconfig对应的服务地址(对应宿主机的服务地址)
说明2:Apollo内置的Eureka注册中心也可以替换为外部统一的注册中心(便于将Apollo的纳入统一的服务监控),只需去apolloconfig对应的数据库表ServerConfig中修改eureka.service.url的地址为对应的地址就好,一般实际部署我们建议做这个替换

本类排行

今日推荐

热门手游