docker-compose搭建apollo的DEV_PRO环境服务

9 篇文章 0 订阅

服务架构图

在这里插入图片描述

准备

apollo官网地址

下载发行版本

  1. 找到github官网

在这里插入图片描述
在这里插入图片描述

  1. 下载adminserver、configserver、portal的zip包

在这里插入图片描述
在这里插入图片描述

  1. 将3个压缩包中的jar包上传到Linux服务器上,服务器目录结构

在这里插入图片描述

SQL数据库创建

ApolloPortalDB需要一个库,ApolloConfigDB为DEV环境,ApolloConfigDB_PROD为PRO环境

SQL脚本可从github上下载:

https://github.com/apolloconfig/apollo/tree/master/scripts/sql

在这里插入图片描述

配置Eureka的地址

配置ServerConfig表中的Eureka地址

ApolloConfigDB配置Eureka的地址
在这里插入图片描述

ApolloConfigDB_PROD配置Eureka的地址
在这里插入图片描述

ApolloPortalDB配置pro环境
在这里插入图片描述

在ApolloPrortalDB的ServerConfig表中的apollo.portal.envs增加 pro环境以英文 “,” 分割两个环境的配置

Portal环境配置

docker-compose.yaml配置

这个配置是用docker-compose运行jar包的方式启动的服务,jar包启动时配置链接的数据库

version: "3.2" #版本号
services:
  ap_portal:
    image: java:8
    ports:
      - "8070:8070"
    restart: "always"
    container_name: ap_portal #容器名称
    environment:   
      - TZ=Asia/Shanghai   #时区设置
      - JAVA_OPTS=-Xmx256m -Xms256m
      - server.port=8070
      - spring.datasource.url=jdbc:mysql://192.168.0.132:3306/ApolloPortalDB?characterEncoding=utf8
      - spring.datasource.username=root
      - spring.datasource.password=admin
      - dev_meta=http://192.168.0.132:8080/
      - pro_meta=http://192.168.0.132:8081/
    volumes:
      - /usr/local/docker/apollo/service/apollo-portal.jar:/apollo-portal.jar
 
    entrypoint: java -jar apollo-portal.jar     
    links: 
        - ap_config_dev
        - ap_admin_dev
        - ap_config_prod
        - ap_admin_prod
  
  ap_config_dev:
    image: java:8
    ports:
      - "8080:8080"
    restart: "always"
    container_name: ap_config_dev #容器名称
    environment:   
      - TZ=Asia/Shanghai   #时区设置
      - JAVA_OPTS=-Xmx256m -Xms256m
      - server.port=8080
      - spring.datasource.url=jdbc:mysql://192.168.0.132:3306/ApolloConfigDB?characterEncoding=utf8
      - spring.datasource.username=root
      - spring.datasource.password=admin
      - eureka.instance.ip-address=192.168.0.132
    volumes:
      - /usr/local/docker/apollo/service/apollo-configservice.jar:/apollo-configservice.jar
    entrypoint: java  -jar apollo-configservice.jar    

  ap_admin_dev:
    image: java:8
    ports:
      - "8090:8090"
    restart: "always"
    container_name: ap_admin_dev #容器名称
    environment:   
      - TZ=Asia/Shanghai   #时区设置
      - JAVA_OPTS=-Xmx256m -Xms256m
      - server.port=8090
      - spring.datasource.url=jdbc:mysql://192.168.0.132:3306/ApolloConfigDB?characterEncoding=utf8
      - spring.datasource.username=root
      - spring.datasource.password=admin
      - eureka.instance.ip-address=192.168.0.132
    volumes:
      - /usr/local/docker/apollo/service/apollo-adminservice.jar:/apollo-adminservice.jar
    entrypoint: java  -jar apollo-adminservice.jar 
    
        
  ap_config_prod:
    image: java:8
    ports:
      - "8081:8081"
    restart: "always"
    container_name: ap_config_prod #容器名称
    environment:   
      - TZ=Asia/Shanghai   #时区设置
      - JAVA_OPTS=-Xmx256m -Xms256m
      - server.port=8081
      - spring.datasource.url=jdbc:mysql://192.168.0.132:3306/ApolloConfigDB_PROD?characterEncoding=utf8
      - spring.datasource.username=root
      - spring.datasource.password=admin
      - eureka.instance.ip-address=192.168.0.132
    volumes:
      - /usr/local/docker/apollo/service/apollo-configservice.jar:/apollo-configservice.jar
    entrypoint: java -jar apollo-configservice.jar 
    
    
  ap_admin_prod:
    image: java:8
    ports:
      - "8091:8091"
    restart: "always"
    container_name: ap_admin_prod #容器名称
    environment:   
      - TZ=Asia/Shanghai   #时区设置
      - JAVA_OPTS=-Xmx256m -Xms256m
      - server.port=8091
      - spring.datasource.url=jdbc:mysql://192.168.0.132:3306/ApolloConfigDB_PROD?characterEncoding=utf8
      - spring.datasource.username=root
      - spring.datasource.password=admin
      - eureka.instance.ip-address=192.168.0.132
    volumes:
      - /usr/local/docker/apollo/config_service_prod/apollo-adminservice.jar:/apollo-adminservice.jar
    entrypoint: java  -jar apollo-adminservice.jar 
        

注意

  • 通过 --eureka.instance.ip-address=192.168.0.132 指定宿主机的ip,否则注入到Eureka中的是容器的内网ip,内网ip是不能通过ip访问到的,这个地方需要特别注意。
  • 通过–eureka.instance.instance-id=192.168.0.132:8080 --eureka.instance.hostname=192.168.0.132 --eureka.instance.ip-address=192.168.0.132,配置instance-id、hostname会在eureka中显示ip+端口号的服务

启动时间较长,需要耐心等待

docker-compose up -d 启动服务

服务测试

服务器地址的8070端口访问服务
在这里插入图片描述

登陆的默认账号: apollo 密码: admin

在这里插入图片描述

点击应用进去就可以看到多了一个PRO环境的配置

在这里插入图片描述
创作不易欢迎点赞打赏

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值